allocation free string encoding
ditto, but allocates
creates ULID from a previously string encoded ULID
uses std.random.uniform and core.time.MonoTime.currTime
uses std.random.uniform
uses callback to set entropy
data stores ulid elements 0..6 bytes make up the time stamp 6..16 bytes make up entropy (random) part
ULID data type.
see: https://github.com/alizain/ulid