added a cache for controllers

When load-testing our play app (which uses Scaldi-play) we noticed a significant bottleneck caused by reflection.

This PR addresses it by caching generated controller instances. This assumes that :
- controllers can be reused (they should, really!)
- Scaldi bindings don't change at runtime