Changes done for GEB-310 - Support navigating to page instances in addition to classes

Following changes were done:

- Extracted Interfaces for all the support classes.
- Added Uninitialized support implementations for the said interfaces
- Added PageInstanceNotInitializedException class.
Let's change `void page(Page page)` to `<T extends Page> T page(T page)