Allow more than one instance of an extension to be installed
To make changing initialization parameters easier, we need to allow one extension to have multiple installations at a time, and for those installations to be findable by the frontend (likely through an event we don't have yet).
Token locking/unlocking relies on us knowing if an extension is a network managed extension.
If we're going to have many simultaneous installations, we can likely provide an "is managed" lookup via a extensionAddress => isOfficial mapping, but probably not a "give me extension" lookup, since by necessity there may be an arbitrary number of extensions. So this change would require knowledge of the extension address to exist external to the contracts. As long as we are ok with that, then this shouldn't be too problematic. IIRC that isn't a problem, since an earlier prototype which relied on this knowledge was (fortunately) abandoned.
Other options are to make the mapping [colonyAddress][extensionAddress] => isOfficial, or perhaps even better extensionAddress => colonyAddress which arguably provides the most information (if the mapping is empty, it is not an official extension, but if it isn't, we know which colony the extension is installed in).
extensionAddress => colonyAddress
Given this doesn't cost extra than the other options, I think this is probably the winner.
Just as a reminder, remember that any implementation has to work upgrading from the current approach.