Move Digest type into discrete package

The Digest type will be fairly central for blob and layer management. The type presented in this package provides a number of core features that should enable reliable use within the registry. This commit will be followed by others that convert the storage layer and webapp to use this type as the primary layer/blob CAS identifier.

This PR also includes updates to the storage package to start using the digest type. More changes to come to change the way the backed is laid out.