Introduce ProviderOf and BoundedProvider

Can I get some comments on this one @alecthomas? Every now and then I need to be able to dynamically request current instance of some interface and passing Injector instances around to call ```injector.get(Something)``` doesn't feel right :)