DI: App#inject and App#register


We now expose: ```App.register``` and ```App.inject``` on each application instance. This should eleviate the need to touch container from a global context and Yay for symmetry.

Docs for both ```App.register``` and ```App.inject``` have been added

Some Api Changes:
---------------------------

```javascript 
App.register
```
now consumes
```javascript
App.register(fullName, factory, options) // fullName -> '<type>:<name>'
```
and deprecates the old behaviour
```javascript 
App.register(type, name, factory, options)
```

So basically, rather then sometimes using fullName and sometimes type & name, we now use fullName everywhere. These changes go all the way down to the container.