CXX-188 Add parallel scan helper

I have some comments in the code but essentially the implementation works as follows:

 - The connection used to call the parallel scan method is used to initiate the scan by sending the `parallelCollectionScan` command to the server.
 - The method then checks out/creates new connections for each cursorId returned and constructs a cursor using those connections for use by the caller.
 - The additional connections are retrieved from the connection pool using the same hostname and socketTimeout as the connection that was used to invoke the method.
 - The caller is responsible for cleaning up the Cursors after consuming their results.
 - In a Cursor's destructor it checks the connection it used back into the pool for future use.
This worries me. How do we know that the object returned by the pool is equivalent to the DBClientBase object that we are currently using? There is nothing that requires the user to have obtained the "initial" connection out of the pool.

If my concern is legitimate, we could abstract away the "get a new connection", and make that the callers responsibility. What if we had another parameter of type `stdx::function<DBClientBase*()> ConnectionFactory`?