Move authentication to Oauth2

**NOT READY FOR MERGE.**

There's still a bit more cleanup to do. Will update this with a checklist by the end of the night.

Feel free to bring up whatever you see, but be aware that I know a few things are hacky/misnamed right now.