Fix two issues with concurrent updates to skip lists.

First, we were retrying updates at the end of the skip list unnecessarily,
preventing the skip list from growing to multiple levels if there was a lot of
contention.  This turned skiplists into single-level linked lists in the worst
case.

Secondly, there was a race inside __wt_random, where the calculation could
race with updates to the shared state, leading to the sequence getting stuck
with zeros in the top or bottom 16 bits.