Updated authentication methods to login v2

@katowulf - Please review but **do not merge**. I want to get your thoughts on everything up to this point. There is still more work to be done here: testing (I am going to need to updated `mockfirebase` first...), removing Simple Login code, taking authentication out of this user management file, etc. Please provide any feedback on how things are structured though.
We should also have an async version of this that waits for the user auth to resolve (either to a logged-in user or to null) before activating. There are three valid usages we need to cover:

 - get the current user synchronously (getCurrentUser)
 - get the current user asynchronously (waiting for initial auth to resolve on load; something like loadUser? waitForUser?)
 - get the current user and reject if not authenticated (requireUser)