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.
The `visibility` has been removed because children visibility is the default value (`Visibility.CHILDREN`).

What kind of tests need to be added ? (We already have  [tests for nested ng-view](https://github.com/angular/angular.dart/blob/master/test/routing/ng_view_spec.dart#L89).)