Enhancement block storage controller

First PR in the series
- establishes the structure within the code-base
- adds the controller and model, but no functionality
- controller is in read-only mode with PUT returning 405 (Method Not Allowed)
- all other end-points return 501 (Not Implemented) for the time-being (they are all TODO)
- all tests pass, 100% code-coverage
In the final version, The model will not be raising errors directly right? The endpoint resource should be doing that.