make read_preference a public attribute, not a role

This eliminates the _HasReadPreference role.

For MongoClient, read_preference is now a public attribute, with a
somewhat backwards compatible accessor.  For Cursor, read_preference is
a private attribute, but with a public method that overrides it, which
is mostly backwards compatible.