Add exception classes
Move install/upgrade logic to a reusable class

This is so that the database structure can by auto-generated on a per-db-test basis.
Reduce the scope of the global variable `$dsn`

Instead make it a static property.   Still not the best way to handle it, but it is a step in the right direction.
Add classes for DBTest helpers
Add method to prepare the test DB
Add a testing database
Add a testing DSN
Start mediahub in test mode
Correct paths to SQL files
Add logic to create base data set
Add logic to uninstall
Add a userCanEdit test
Update to reflect constructor change
Move test-helper classes to the `/tests` directory
Move tests specific logic to the tests directory

This includes moving classes and config and removing the extra variables from the mediahub class.
Merge pull request #178 from mfairchild365/db-test

Add a DB test for Media::UserCanEdit