fix: storageblocks fix head blocks

- block_id needs to be set to 'None' if X-Block-ID is None, so the
  stoplight rule on block_id.setter has now been set to
  MetadataBlockIDRuleNoneOkay

- block_orphaned needs to evaluate boolean expressions properly.
  Since even bool('False') equates to True, since it aint a empty
  string

- create a helper function for testing, that allows creation of
  storageid from a given blockid(sha1)

- InvalidBlockType now inherits from InvalidApiObjectInstance in
  errors.py