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!)
BSONIbj::operator[] calls BSONObj::getField() which returns an empty BSONElement if "name" isn't found inside the BSONObj which I believe would return a char * pointing to invalid memory when we call valuestr() on it.

This can't happen though as collection infos are defined by the server to always have two fields name + options.