feat: delete block endpoint

Blocks can now be deleted, if they have no references. A status
code of 204 is then returned.
A Constraint Error is raised by the metadata driver if there
are references, and 412 is returned as status code.

Endpoint:
    DELETE /v1.0/vaults/{vault}/blocks/{blockid}
How about just return True on success and False on failure in all cases.
If an exception needs to be thrown, it can be thrown as well for  500 errors, but otherwise it should simply be True/False and consistent between all implementations.

Thoughts?