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.