Support optional geometry columns

This implementation drops the type restriction on `Geometry` and relies only
on the implicitly available `GeoType`s.
Refactor geometry type delegate
Merge pull request #1 from felixjendrusch/option-geo-type

Support optional geometry columns
Move to 2.10
Fix issues with pull request #1
Add in basic scala tests
Allow testing user/pass from env vars
Add travis build yml
Move up to postgres 9.1
Trim numbers for easier comparison and add postgres port
Add travis CI badge to readme
Allow nullable (Option[T]) geometry columns
Add test for generic Geometry fields
Fix issue #2 (deleting rows in geom tables)

By default delete expects a super simple top-level
table. Something like:
Comprehension(fetch = None, offset = None)
 from @2110217109: Table cities
 select: Pure
   value: ProductNode
     1: Path @2110217109.id
     2: Path @2110217109.name

However, the default select for a geometry uses a function,
which seems to force an inner select in the AST like so:
Comprehension(fetch = None, offset = None)
 from @498146522: Comprehension(fetch = None, offset = None)
   from @348440261: Table cities
   select: Pure
     value: StructNode
       @1449747101: Path @348440261.id
       @550067645: Path @348440261.name
       @69809180: SelectOnlyApply(Apply Function ST_AsEWKB)
         0: Path @348440261.geom
 select: Pure
   value: ProductNode
     1: Path @498146522.@1449747101
     2: Path @498146522.@550067645
     3: Path @498146522.@69809180

It seems like the purpose of this is to give the SOA a name
(ie @698..) for use later, but we really don't use this
function in a delete.

Instead we check for this structure directly and then, if we
find it, promote it to the top level and send it along.

A couple of notes:
* The where clause is on the *outer* "for" and uses labels
  on the inner for. Therefore we push the where clause down
  and ignore the inner one
       ^- Is this okay?

* Since the outer where references the inner labels, which
  are turned into aliases, we have a problem (because
  delete doesn't support them). We can around it by
  forcibly setting the anonymous labels to the field name.
  This also seems sketchy.
Rewrite build
update slick version