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.
PING, can you address this change?