PDO Support

This pull request changes the underlying database driver to PDO so end users can use any database supported by the PDO library instead of being locked in to MySQL without sacrificing the security provided by prepared statements.

To further decouple this library from a specific database setup, dependency injection is used for the database connection. This allows us to rid the config of sensitive passwords and allows the user to use an existing connection (Singleton) instead of having to create a new one specifically for the Auth class.