Bug Fix Block Size

- Enforce that the specified size of the data matches the actual size of the data when adding a block (both store_block and store_async_block)
- Fix the block put end-point to correctly get the content length even if the caller forgot to specify it so that we have it for the validation (above) and database if everything matches
- Fix Cassandra so that it does not incorrectly register a block
I'm a bit confused here. I see that you have added side effects to throw exceptions. and you are patching builtins.open with open_values ( which is list of mock.mock_open()).
Shouldn't we be looping through them?
```python
for open_value in open_values:
    with mock.patch('builtins.open', open_value, create =True):
            <insert code>
```