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.
Although there is a big 'todo' above the the declaration of $db in ``MongoTripodBase`` which says ``//todo: I don't like this being public, can we hide it?``.

Are we sticking with it as public?  If so then that todo should probably be removed.