Todo:
Fix bug with refresh then back...
Fix bug with disconnect when attempting to connect to invalid bluetooth device.
Cleanup on sleep...
Break into side effects, handlers, transitions.
Make startup faster (in production).
Add some sort of pre-conditions on state in handlers.
Work on schema.
Implement some sort of component should update in views to prevent reloading ui unneccesarily.
Refactor everything (bluetooth, ui, remote, ...)