feat: storage block id prefixed with blockid(sha1)

The storage block id is now prefixed with the actual sha1 of the
blockdata. i.e block id

Some of the benefits:

1.We no longer need to query metadata to find the block id for the
corresponding storage id.
2. A performance boost for validation and cleanup service
3. Easy identification of oprhaned blocks if there is more than one
block that begins with the same sha1 in storage.
With a decent implementation you should be able to do `sorted(os.listdir(path))` without any performance loss (CPython needs a copy but I guess you don't care).