Implemented new LoginManager.

LoginManager now handles all login-related things like managing the
state and persisting auto-login information.

User information is requested on login from the OpenID Connect
provider. This information is available as a JsonObject for later
use.

Automatic login is only tried when the device has a connection. If
connectivity is lost, the account will be temporarily logged out.
When the device reconnects, the app will automatically log in again.

Manual login can be requested from LoginActivity by using an intent.
It will a) initiate account creation if there are no accounts, b)
login using an available account, or c) present a dialog from which
the user can choose one of multiple accounts.
Implemented new uploader architecture and OkHttp.
Cleaned up unused classes and methods.
SemanticVideo should generate key if none exists.
Context cleanup in various files.
Moved location stuff into a LocationManager.
Merge branch 'wip-video-upload'