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.
I have this on my todo list, will look at it tomorrow