Refactor towards a top-level login

- Make the current user more of a top level property
- Api/auth is now just for communicating to the API
- Components requiring a user no longer need to interact with the API directly
- Data/login wraps authentication and current user into React
- Register form now correctly handles taken login/email
- Sign-in and Register forms now correctly use loading states