Converted BufferedStructureGuard into sub-class of the Storage template
* sub-class is called element_guard and makes it clear that it is not intended for usage outside of the Storage template class