MYLOC-144 multiple dialogs

Preventing multiple dialogs from being displayed (cold start, remove main, make main).

I've reworked some of the events that the controller and other components respond to as this had become a little messy and sub-optimal.

Lots of stubbing going on in these tests but not much restoring of stubs. It's worth doing as it could cause some hard to find test bugs later on.