[Refactor] GoogleController updates online status

Made GoogleController the central place to update online status.

All classes that updates the online status, except Logic, will call
GoogleController.setOnlineStatus(Status).

Also, add logging and asserts for switch case in GoogleController

Also, add defensive coding to Logic setOnlineStatus to check if _gui is
not null before proceeding.