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
Yes, there is an issue there. @painterjd could explain better, and IIRC it's due to timing.

Fixing the model vs. controller structure would certainly help; but we also should probably try to hide the need for the double-dipping this way inside the Swift Storage Driver implementation so it is transparent outside.