Refactor, new exceptions

Refactor where some code is located:

 * Move some database interaction to Sql
 * Move Collection to Internal folder in preperation for __call__ functionality on Orm
 * Pull out some database interaction logic which was moved to Sql
 * Pull table caching into Internal\TableInfo
 * Pull DESCRIBE query into Sql
 * Pull data transformations into SqlDataAdapters

Add new exceptions: ConnectionException and SqlException.
Cleanup, prepare for testing

Remove left-over TinyDb/Collection file. (Requiring -u on git add is silly.)

Add PHPUnit infrastructure and Travis config file
Add todo list
Improvements to SQL classes

 * Moved SQL into Query and QueryBuilder
 * Add query result cache
Refactor architecture, add tests

 * Fix DB loading
 * Move exceptions to new folder
 * Move Query* functions to new folder
 * Add Properties trait
 * Add Result and ResultRow
 * Add require file; SplClassLoader no longer required
 * Add Tests for everything but Orm

Final Orm is still to-do.
Add support classes for ORM, add most of ORM logic, add tests
 * Add AccessManager and associated test
 * Add Query\Model
 * Add primary_key support in TableInfo
 * Add primary_support in Query
 * Add ORM and test
 * Add testing for primary key info in tableinfo
Add collection, finish essential ORM functionality.
Finish ORM features, update docs
 * Add support for foreign keys
 * Fix table creation bugs
 * Finish ORM tests
 * Update all docs