30% - TENT-609 Make tripod saves set db read preference to primary

We are currently setting the collection read preference to primary when calling MongoTripod::SaveChanges().  However the db object also needs to have it's read preference set to primary as it is used when generating views, and reading from secondary may cause a view to be generated with out-of-date data if the replication lag is too high.

Tests to follow when approach is agreed.
I've just had a look to see if I can get these tests to work via reflection, and then answer is yes, but in so-doing I also discovered that db is accessed directly in MongoSearchProvider too so it can select the collection, and I don't think using reflection there would be a good idea.  

Ideally I think db should be made protected, selectCollection should be exposed via MongoTripod, and we should test $db via Reflection - however for this branch I think we should keep things simple.  So I propose removing the getXReadPreference() methods, and reading directly from $db for the tests.

Agree?