add SlaveOk support at the connection level

I've implemented reading from slaves. I've made a few assumptions which I'm happy to change if people object.
* Collections, indexes, users and functions are *always* loaded with the slaveOk option
* When creating connections, there is a new slaveOk option
* If the slaveOk option is on for your connection, the shell window will open allowing you to read from secondary nodes.
Why was _dbclient->getCollectionNames() removed? This is the proper API to use (particularly for compatibility with MongoDB 2.8, where the `system.namespaces` collection will not exist in alternative storage engines).