Only bump the oldest snapshot ID during normal snapshot refresh if we have a much better value.  Track the oldest running ID in a similar way and use it for read-uncommitted operations.

refs #701
Now that we aren't forcing oldest ID updates all the time, we need one in the compact path so that all recently-dirtied pages can be evicted.

refs #701