Module registration changes

Switched per-request module registration so only a single module is registered - the fact we registered all of them was wasteful because we guarantee we only resolve one per request anyway - this gives a massive per-request speedup when using lots of modules.

Other boostrappers will need to be updated.

Also update TinyIoC - optimised the speed of AutoRegister to reduce startup times with lots of types defined.