User Authentication, API Handling

Handles #48 as well.
I see, that's fine.  Generally I would say it's better to make it either be a constructable instance, or an object containing functions (not both).

The way you've got it now is good because there is no internal state, which makes it very easy to understand how each function will behave.