Converted BlockStorage into Storage template class
* the idea is to have a class that encapsulates BinaryMapping functionality and exposes a permanent file-backed storage
* BufferedStructureGuard aims to emulate mmap like write-back functionality by scope-guarding a buffer