Parameterize ulid
Adds the ability to generate ULIDs from fixed seeds. We can specify the time, and also the randomizer function. This allows us to make entirely predictable ULIDs and unit test construction and encoding in a comfortably repeatable fashion