Bug Fix Block Size

- Enforce that the specified size of the data matches the actual size of the data when adding a 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
Note: We previously did not have L99; this is a bug as zip()  will produce a least common size set of values; so if only one block fails to upload, then at least part of the list if not the whole list will be off-by-one in the resulting zip of values when relating the storage ids to the block ids.

If we want to allow some blocks to be uploaded; then the input data needs to be in a dict/list that is searchable by the block id such that "block_id in listing" works; then the result from store_async_block() can return a listing of tuples containing both block id and storage block id which can then become the basis of the for loop.