Polished login screen

- Separated login screen layout to multiple components
- Improved expand/collapse behavior
- Made sure login screen is left in a sane state after login succeeds
- Also implemented 'Reset database' functionality to make testing easier