CXX-441 support the new listCollections command format

Given that we have the shim infrastructure already this is what I came up with. I tested it against MongoDB 2.0.9 and master and it seems to work + pass all tests.

Ideally I'd have preferred if we had used the DBClientCursor constructor that takes the returned cursor id and used put_back to load up a stack of documents from the first batch as it would make the code a lot cleaner, shorter, and easier to understand, etc. The problem with that approach is that it's kind of a crazy hack (even more so than being able to put back results in to a cursor itself!)
Is getCollectionNames still useful? Should it return a cursor itself? Should it be a template that takes a back_inserter so you can use it with an arbitary container type? Are we doing our users any service by providing it, beyond obtaining the properly named field out of each item iterated by the cursor?