Add support for all query types

* Add rules for all new methods.
* Create lists of possible clauses for each query type.
* Create lists of minimum required clauses for each query type.
* Add `modify` clause for arbitrary modifications (`INSERT INTO`, `SELECT SQL_COUNT_ROWS`, etc).
* Remove `allowIncomplete` constructor flag; replace with `buildIncomplete` method.

Replaces #5 
It don't think it matters. The first thing you do when tests fail is open up the test file and go to the failing line. I'm triggering this error by inverting the assertion.
```
[ ~/PopSQL % g df
diff --git a/QueryGeneratorTest.php b/QueryGeneratorTest.php
index b33b456..7803b87 100644
--- a/QueryGeneratorTest.php
+++ b/QueryGeneratorTest.php
@@ -55,7 +55,7 @@ class QueryGeneratorTest extends PHPUnit_Framework_TestCase {
                return $qGen->skipValidation()->build();
             };
 
-            $this->assertTrue((bool)$this->didThrowException($build));
+            $this->assertTrue(!(bool)$this->didThrowException($build));
             $this->assertFalse($this->didThrowException($buildIncomplete));
          }
       }
[ ~/PopSQL % /usr/bin/phpunit QueryGeneratorTest.php
PHPUnit 4.1.3 by Sebastian Bergmann.

F.....

Time: 78 ms, Memory: 3.50Mb

There was 1 failure:

1) QueryGeneratorTest::testIncompleteQuery
Failed asserting that false is true.

/mnt/ebs/home/cpatton/PopSQL/QueryGeneratorTest.php:58

FAILURES!
Tests: 6, Assertions: 31, Failures: 1.
```

I open the file, move to line 58, and see that callback `$build` returned the "wrong" value. That took no time, and I don't think I lost any information in the process.