Head populated vault
Replace MossoId with Tenant Id

Replaced the value used for project id from the
Cloud Files MossoId to the Tenant Id.
Enhancement: Re-usable storage id regex

- Use the existing regex to build the storage id regex, based on what we did in Deuce Client
Enhancement: More explicit and accurate error message when underlying storage block does not exist

This converts Deuce from the 502/Bad Gateway error over to the 410/Gone error

Previously 502/Bad Gateway was being returned under the argument that Deuce is a "gateway" to storage in the normal
deployment use-case (e.g OpenStack Swift/Rackspace Cloud Files). However, it's not really a service error as the 5xx
error codes are reserved for. After discussion the team agrees on 410/Gone instead; client are suppose to be able
remedy this by re-uploading the block which will then restore everything dependent on the missing data.
Orphan block created by msgpacked upload
Upload multiple blocks (msgpack) that have been assigned
Delete unfinalized file with blocks
Merge pull request #232 from jc7998/head_pop_vault

API Tests: Head populated vault
Merge pull request #234 from jc7998/fix_project_id

API Tests: Replace MossoId with Tenant Id
Merge pull request #235 from BenjamenMeyer/enhancement_validation_storageid_regex

Enhancement: Re-usable storage id regex
Merge pull request #236 from BenjamenMeyer/enhancement_more_explicit_missing_block_return_value

Enhancement: 502/Bad Gateway should be 410/Gone
Merge pull request #237 from jc7998/upload_block_twice_with_msgpack

API Test: Orphan block created by msgpacked upload
Merge pull request #238 from jc7998/upload_blocks_after_assignment

API Tests: Upload multiple blocks (msgpack) that have been assigned
Merge pull request #239 from jc7998/delete_nonempty_file

API Tests: Delete unfinalized file with blocks
feat: cassandra assign blocks now uses execute_async

- Memoization needs to be added, since functools' lru_cache
  does not support invalidation per arg,kwarg pair