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

- Changed the structure of the uiView directive to work more like ngView.
- 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