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.