feat(shutdown): Add the ability for an app to shutdown

Adds a new `$shutdown` service that can be used to shutdown an app and the `$shutdownProvider` that can be used to register tasks that need to be executed when shutting down an app.

Added tasks for `$rootElement`, `$rootScope` and `$browser` to be able to shutdown an app

Refactor `$interval` so it delegates to `$browser` just like `$timeout` does
There is no way to say "recursively remove all the data" (well, not without manually traversing the tree). In `jQuery` this is possible doing `rootElement.find('*').removeData()`, but not with jqLite.
Will write a manual traversing and repost the PR.