Github Auth

This branch incorporates github oauth as well as a new User model which includes utilities for getting and setting users. Tests for all user methods.