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
Context as in related to were it is coming from, as opposed to the sole context provided of what is inconsistent.

Yes, this is partially tracked by the associated stack trace; but it can also be helpful to have it in the message especially when the message gets sent back to somewhere (f.e a client) that does not (and possibly should not) have access to the internal Deuce stack traces.