We already have default std::allocator interface that uses Allocate/Deallocate functions directly. But we are going to get rid of these functions in the future (due to some problems described in #30). So we have to refactor this interface in such a way, so it's possible to use it without presence of Allocate/Deallocate methods.