Add NavigationService and update related code.

NavigationService allows better separation between application state and URL fragment. The application code is not dependent on goog.History and is better testable.

This change resulted into a lot of code updates and refactoring.

Initialization code was also changed: we moved Lookup initialization out of web application constructor and put logic of finding DOM Elements in HTML into separate function too (should be later moved to different class as well).