Changed UInt implementation so that it doesn't rely on the constructor-closured impls objects - replaced that with a abstract overridable instance method constructorReference() which returns the reference to the concrete class
Aligned protokit UInts creation with o1js 0.18 UInts.
UInt.from now only takes other UInts of the same bitlength or string | bigint | number
added UInt.Unsafe.fromField to create unchecked
additionally added UInt.Safe.fromField to compensate for the lack of .toUInt*() methods, which exist in o1js but not in protokit (due to the generic nature of our UInts).
Added a few .toUint*() methods that use Safe.fromField() under the hood
Docs PR https://github.com/proto-kit/website/pull/6