TechTree refactor

This changes how the tech tree registers watchers, they no longer use keys but try to make the minimum amount of watchers needed by comparing prerequisites.  This makes managers like the one in #6110 unneeded.

Beware this will break that PR and also those who edit the tech tree, support powers and the production queue.

@pchote if you want this in since I am only putting it up to see what the reaction is, then you can put the upgrade PR through and I can just edit it to fit this.
You could potentially simplify this by making the production queue add a handler to `world.ActorAdded` and `world.ActorRemoved` that checks for actors with build limits -- but that is what the tech tree is there for, so the production queues shouldn't need to do this.