Add time based UUIDs

See #5941.


Using SecureRandom as a UUID generator is slow and doesn't allow us
to take adavantage of some lucene optimizations around ids with common
prefixes. This commit will allow us to use a
timestamp64bit-macAddr-counter UUID. Since the macAddr may be shared
among several nodes running on the same hardware we use an xor of the
macaddr with a SecureRandom number generated on startup.
Does this class add any value to anything except `RandomBasedUUID`? Feel like it should just be a `static` inner `class` within that.