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.
getIndexes() is the correct API call to use; the `system.indexes` collection should not be read directly for compatibility with alternative storage engines in MongoDB 2.8+.