refactor(view): use nextUid from angular to generate unique ids

Math.random() is unreliable, produces duplicates, and numbers can
overflow if you use them for long enough.
feat(content): remember scroll of previous page

`content` directive stores scroll in view page history.

The history is passed down through $viewContentLoaded event, which is
broadcasted by navView directive when it loads a page.