CDRIVER-425 use listCollections to enumerate collections.

I'd be surprised if I wasn't leaking memory somewhere. Will valgrind this tomorrow - but in the meantime I would appreciate style & design comments, etc.

Tested against 2.7.7 and 2.6.3.
do we want a backoff strategy here better than reallocing one at a time?  There's actually a mongoc_array_t as well if you need a reallocing vector type