Sprint 2 - commit 2

Refactored whole system views and view models to flow neater/ more
natually.

A whole new view/view model created to view QR code.

Messaging introduced to pass messages and to change view on button
clicks.