feat: HEAD /blocks/{block_id} endpoint

Depends on #132 

on a HEAD, the block is checked for existence in the metadata store,
after which its checked for existence in block storage.

- If present in metadata, and non-existent in block storage:
     502 Bad Gateway is returned along with an explanation.

- If present both in metadata and block storage.:
     200 OK is returned along with headers such as
     x-block-reference-count

- If not present in metadata:
     404 Not Found is returned
What kind of additional context, Can you elaborate? this exception is pretty specific IMO. Perhaps we can rename the exception to BlockConsistencyError