Repurpose the row ID generation facilities for (opaque) per-row versions

This is more invasive than it might have been because I renamed
RowIdProvider and made the DatasetInfo store a Long.
Share crypt engines between row id and version columns