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}
ConstraintError has init-ed all Exception args.  So Exception can be safely used on line 158 below.  A benefit is what happens in drivers stay in drivers; controller needs not know drivers' details.  

Please refer to the usage of GapError and OverlapError.