fix(uiView): Refactoring uiView directive to copy ngRoute logic

- Changed the structure of the uiView directive to work more like ngRoute.
- Updated tests to work with new structure.
- Fixes the issue with using ngIf in conjunction with uiView.
- Added in extensive test for ngIf fix.

Closes #857