Support for GROUP BY and ORDER BY for queries

Also, added support for ORDER BY in collections.
Close connection in test cases to avoid running out of connections
Close connection in test cases to avoid running out of connections
Test coverage for GROUP BY and ORDER BY
Small cleanup of `use` statements
Transaction uses Pheasant singleton connection by default
Merge pull request #35 from dhotson/test-close-connection

Close Mysql connection in test cases
Fix for #30, default event handlers are registered lazily on first call to event()
Merge pull request #39 from lox/lazy-eventhandler-creation

Default event handlers are registered lazily on first call to event()
Merge pull request #36 from dhotson/transaction-default-connection

Transaction uses Pheasant singleton connection by default
Merge pull request #34 from dhotson/group-order-by

Support for groupBy and orderBy on Query object and orderBy on Collection
Removed Classloader and Compiler cruft
PSR-2 compliance
Fixed broken benchmarks
Merge pull request #41 from lox/psr-2

PSR-2 compatibility
Refactor benchmarks into stages
Removed old benchmark file, added more columns to benchmark
Refactor type system, add custom types

Previously types were determined by the Mysql TypeMap and no conversion
was done on the way into the database or out of it. This change moves
that responsibility to the actual type objects and adds a new pair of
methods to Schema: marshal and unmarshal.

There have been some API changes in this revision:

- DomainObject::fromArray no longer takes a saved parameter and it
  assumes the array passed is to be set without any of the magic that
  occurs in load()
- Schema::hydrate() assumes a database row and will always unmarshal it
Added unmarshalling for Boolean
Merge pull request #37 from lox/type-refactor

Improved type system with support for custom types