Added new Authentication class

The new Authentication class will better handle user auth & admin auth
Changed the way the database class is handled

The database class is now initialized within the User class. This will
allow us to use the local database connection for all methods, instead
of requiring the connection to be passed around to all of the functions