Rethink the query builder.

This replaces the advanced array logic crap of the conditionals with functions that represent the special things you want to do.

Now, without using the functions, it's only possible to do `x = y` or `x IN (y, z, ...)`.

These are the functions you can use...

 * `Database::where_and`
 * `Database::where_or`
 * `Database::where_not`
 * `Database::where_gt` (More than)
 * `Database::where_gte` (More than or equal to)
 * `Database::where_lt` (Less than)
 * `Database::where_lte` (Less than or equal to)
 * `Database::where_equals` (Equals)

Internally, this uses an object to communicate the special information. 

I've also added many tests for `Database`, `DatabaseQueryBuilderSQL` and `DatabaseDriverPDO`.

You can also chain the query builder now, start with one of `select`, `insert`, `update` and `delete`, you have many methods available to modify the query:

 * `where`
 * `where_*`
 * `limit`
 * `group`
 * `set`
 * ...