Iterating an array by a GList is considerably faster than
continuously retrieving items, however it is also a lot
more complicated. So the new macro takes care of that and
uses a new semi-private function to avoid copying the list.
Note that the macro can't be nested, which basically isn't
useful in practise anyway.
Extensions can be unavailable on a particular platform or a system
lacking a build-time requirement. Let's handle this more cleanly
and reflect it in the Extensions panel.
Whether an extension is active or not is now reflected by a tick
mark that can be toggled with a mouse. Double clicking and
pressing space do the same. The buttons are thusly removed.
While we are at it, we also listen for status changes that might be
coming from a different window.
Sensitivity does no longer relate to activation status.