fixes and cleanup for query system

- table factory moved to delegation for op processor and
constructors weakened and fix accordingly
- various promise objects renamed to be more accurate
- QueryOp.close is no longer daisy chained (to simplify error
suppression and isolation from other QueryOps)
- QueryOp.close should now reliably be called for every op object
- switch and map used to construct QueryOp objects factored into
the already existing enum
- OpLimit.sendComplete should no longer ever be called twice (even
without the extra done guard)
- cancellations and other misc. errors should be detected by
queries in ops more rapidly (ones that check the query promise at
least -- eg. disk sort)
- a few misc clean ups in various query ops
- the initial http 200 response should once again be deferred
until the string buffer is full -- not just until the first bundle
is written. This allows for more user-friendly error reporting
under more circumtances