Implement limiting of results

Added support for limiting the number of results from a query. this
is implemented by filtering the results ruturned from the Query on the db
Falling back to an empty array if this condition fails seems odd. Can't `skip + MIN([docIds count],limit)` be > `docIds.count` if `skip > 0`, but we'd still want to return documents?