cursor: create synthetic failure upon top-level query and $dollar keys

It is possible to submit a query to mongo-c-driver that looks like:

  {a:1, $orderby: {foo:1}}

This is invalid since it mixes the top-level query and the orderby. It
should instead be:

  {$query: {a:1}, {$orderby:{foo:1}}}

This fixes CDRIVER-379.
build: bump libbson to master for strtoll
doc: update collection_find docs for how to specify $orderby
build: bump libbson
cursor: only provide "fields" if it was specified when creating cursor.
client: allow providing fully qualified namespace for $cmd.
cursor: allow command responses that do not have "ok" field.
collection: allow fully qualified ns name using collection name.

this way a collection called $cmd.foo.bar can work.
cursor: set slaveok bit when command readPrefs are not PRIMARY.
build: bump libbson for json and keylen check
Merge pull request #51 from ksuarz/master

doc: fix wrong description
Only include mongoc-ssl.h when built with SSL
build: bump libbson.
Merge pull request #52 from bjori/patch-1

Only include mongoc-ssl.h when built with SSL
client-pool: put ssl opts in #ifdef.
gridfs: add mongoc_gridfs_remove_by_filename()
gridfs: include bulk operation header.
gridfs: fix potential uninitialized use.
Release 0.96.4!
git: fix a release oopsie.

However, not totally a bad idea to include these like this.