Adds support for Initializers.

* Object initializer runs once on first lookup
* Factory initializer runs on every lookup
* Singleton initializer runs once on first lookup
Adds documentation for Initializers.
Makes initializer chainable.
Merges branch 'feature/add-initializers' into develop
Updates composer