Split Cursor into new QueryResult class

The MongoDB::QueryResult class implements pure cursor iteration.

The MongoDB::Cursor class holds a query and options and instantiates
a QueryResult on demand.

Both implement the new MongoDB::Role::_Cursor interface.

Parallel scan and aggregation cursors are now QueryResults, not
Cursors, which is more appropriate given that those can't be changed,
explained, reset, etc. anyway.
PERL-436 bump maxWireProtocolVersion
PERL-433 use listCollections command for collection_names

This uses listCollections instead of querying system.namespaces if the
server accepts wire protocol version 3.