Include _id and _rev in all index tables

This allows users to query by both _id and _rev in their queries. It
also paves the way for projecting because we can get the _id, _rev
and applicable body fields for a CDTDocumentRevision, meaning we can
create a CDTDocumentRevision from information in the index alone.

Fixes #4.
Update README.md
Fix naming typo
Update README.md
Implement limiting of results

Added support for limiting the number of results from a query.
This is implemented by filtering the results returned from the
Query on the db. Results can also be skipped using the skip
 parameter on find
Merge pull request #5 from cloudant/limit_results

Implement limiting of results
Re-enable and fix test suite
Support indexing a single array field per document per index

This commit adds the ability to index documents like:

{
  arrayField: [ val1, val2, val3 ],
  field2: val4,
  field3: val5
}

Each entry in the array results in a row in the index table:

_id    _rev    arrayField    field2   field3
1     2-blah      val1        val4     val5
1     2-blah      val2        val4     val5
1     2-blah      val3        val4     val5

As each entry in the array results in an row in the results table,
only a single array per index per document is allow. Otherwise, if
there are several arrays, we end up with an explosion in index size.
The single array restriction is a compromise between expressivity
and preventing accidental massive space usage.

When querying, a query like:

{ arrayField: { $eq: val2 } }

Will find any document where val2 appears in the arrayField column of
one of the rows referring to the document.

In this case, using the $not operator:

{ arrayField: { $not: { $eq: val2 } } }

Gives the same result, as there are two values in the array that are
not val2.
Add basic support for projection

Issue #14

Projection  supports the removal of fields only, uses the Cloudant Query syntax of an array using the fields:  parameter on find.
Passing nil as the fields into find will result in a full document being returned, the same is true for an empty array.
Merge pull request #17 from cloudant/filter_fields

Filter fields, fixes #14
Serpate tests out
Add array comparision tests and create indexes for documents
Abort query when compound operator does not have an argument of NSArray
Abort query when compound operator Array does not only contain dictionaries
Bail from query when argument dictionary to operator is empty
Rewrite processing loop to validate then process
Add comment to why dictionary is being passed back
Change error message
read file for invalid syntax