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.
@rsinger @rgubby Continuing the discussion we were having on friday - I agree it is not good to add methods purely for testing purposes.  Although I also agree with the todo comment that ``MongoTripod::db`` should not be public.  If we have to make it public then I think it should at least be exposed via a getter to give more control and mockability.