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.
Maybe something like:

DBClientBase* conn = NULL;
try {
    conn = connectionFactory();
}
catch( ... ) {
    while (arrayIterator.more()) {
        try {
            DBClientCursor killOnServer(this, ns.toString(), cursorId, 0, 0, 0);
        } catch( ... ) {
          // ignore any failure to create or destroy the above temporary cursors, they exist just to
          // attempt to kill the cursors on the server for which we will not be able to return a cursor
          // to the user.
        }
    }
    // Re-throw the users original exception...
    throw;
}
DBClientCursor* cursor = new DBClientCursor(conn, ns.toString(), cursorId, 0, 0, 0);
cursors->push_back(cursor);