App events and async service definition

Service definition is now made async, so it'll depend on a callback to actually add the service in the app instance.
With this, came the need of App events.
Right now there are 2 types, which are namespaced with [EventEmitter2](http://npmjs.org/package/eventemitter2):

* `service.*`: triggered when a service is added
* `remove.*`: triggered when a service is detached