Initial Digest implementation

Hey all,

So this is the barebones Digest implementation. I'm in the process of adding `from_hex`, but there are some subtleties around properly handling hex-encoded UTF-8 characters that I'm still trying to sort out. `crc32` and `adler32` are left out, because they are both functions in the `:erlang` module. I'm open to additional suggestions for functions to include here, but honestly it's starting to look like `md5`, `to_hex`, and `from_hex` are going to be it.

I wanted to get this up here for people to review while I continue working on things, and start collecting feedback.