refactor(NgView): Make use of the ViewPort

#Closes 704

This was first introduced by #910 and later reverted in #991.

Some info about the change:
- `NgView` now makes use of the `ViewPort` instead of appending / removing elements manually,
- This means that `<ng-view>` is removed from the DOM in favor of an anchor (HTML comment),
- To exist the anchor must have a parent, which is which `<ng-view>`s are wrapped in `div` in the tests,
- The added `_.rootScope.apply()` is required to run the flush phase when the view are inserto to /removed from the DOM.

@pavelgj @jbdeboer you have both commented the original PR, could you please review this one and let me know if you seen issues with it. Thanks.
This change will not work. :-( The issue is that ng-view's are nestable and so they need ChildrenVisibility, otherwise nested routes do not work. The new DirectiveInjector makes it not possible to inject Transcluded controllers. We can change the behavior, but that is the current status. Can we talk about it.

I feel like ngView should be transcluding so that it can properly handle animation, and it is what we do in AngularJS. (https://github.com/angular/angular.js/blob/master/src/ngRoute/directive/ngView.js#L188)