Defer, Resolve, and Register

Added three new methods to the bottle API:

* `Bottle#defer` - registers a function to be executed after `Bottle#resolve` is called.
* `Bottle#resolve` - executes and functions registered by `Bottle#defer`
* `Bottle#register` - a new configuration option that allows a service to declare how it should be used by bottle.  See the readme.