Moved auth, config, cache and events to separate modules.
Added a base view to manage handling of above.
Added global events to communicate between app instances (e.g. auth
changes for apps that share authId).
Caches should be shared across common instances that have the same
ensemble url.