Add uhashlib with sha256 implementation

Do we need to provide this print function?  Is it useful?  If you don't provide one then by default it'll print `<sha256>`.  If you really want the pointer, maybe we can change the default print to print the object type name, then the pointer?