Remove an fdescribe
CDTDatastore to 0.11.0, CocoaLumberjack to 2.0.0-beta4
Simplify override for forcing SQL-only querying
Check sort doc contains dictionaries
Apply skip, limit, post-hoc matching during result enumeration

This removes several overheads:

- Running the matcher over every result, even when applying
  limiting the results returned.
- Creating new arrays for the matching and skip/limit steps.
- Loading documents from the datastore twice when post-hoc
  matching was required.

Fixes #33 and #34.
Change limit behaviour so 0 disables limiting

Previously, limit=0 would return no results. This seemed against
common patterns for this kind of thing in other systems.

Fixes #37
Merge pull request #38 from cloudant/37-limitdefaultzero

Change limit behaviour so 0 disables limiting
Note meaning of zero by >0 checks for clarity
Use commit hook to avoid committing focused tests
Fix post-hoc matching when projecting fields

Before this, the projection would happen before the post-hoc matching
stage. The problem there was that the matcher would end up operating
on the projected revision. If the projection removed a field the
post-hoc matcher was checking, the revision would be rejected.

As a side effect, this removes the overhead of projecting every
document, regardless of skip, limit and matching.

Fixes #39.
Merge pull request #40 from cloudant/39-correctprojection

Fix post-hoc matching when projecting fields
Fix limit and user-stop enumeration when >batchSize results

The break statements in an inner loop just pushed us back out
to the batching loop, rather than out of the enumeration.

This is fixed and tests added.
Test skip on large result sets.
Seperated Validation and normalisation into single step

- Created new class CDTQQueryValidator
- Moved Normlisation functions into CDTQQueryValidator
- Moved validation functions into CDTQQueryValidator
- Validate entire query in one step after normalisation but before
returning normalised query