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.
@jwngr I'm not sure this is the intended use of the ignore statement.

My understanding is that ignore statements should be used for the limited cases where you *never* intend to write tests for that code. Debugging code (i.e. `if (logLevel == debug) ...`) and boilerplate (i.e. a [UMD wrapper](https://github.com/gotwarlost/istanbul/blob/master/ignoring-code-for-coverage.md#ignore-a-umd-wrapper)) are two examples where ignore statements seem useful.  

IMO, using ignore statements like this provide a [false sense of security](https://coveralls.io/files/354932688).