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!)
Same question here about malformed data. Also, I don't think valuestr() does any type validation.

Also, I think you can get the string value back as a StringData with checkAndGetStringData. It shouldn't change much because SD offers 'find' as well. On the other hand, this isn't performance critical, so string might be fine.

In any event, might as well declare as 'const'.