Fix premature instantiation of extended bindings and extending of deferred services

If you `app->extend` an object after it's been bound but before it's been resolved, it will be initialized right away. See the unit test for an example. The solution is pretty simple, just check if an object has actually been resolved rather than if it's bound.

A related issue that can also be solved as a part of this is that you can't extend deferred services. This has also been fixed.

I'm pretty sure this should be backwards compatible, but if someone has a codebase that uses rebound and could try it out or write additional tests that would be great.