* apply [this patch](/uploads/44987d57e4b3af26d9264f69b67c839c/patch-on-f3ea0d3476c7f67103032dc36c19d75d5f8d0b2e.diff) to f3ea0d3476c7f67103032dc36c19d75d5f8d0b2e to see a first attempt in this direction
* see below for open steps/thoughts
we discussed this
* it does not solve the underlying problem:
* pointers must not leave the `ResourceManager`
## idea
* let the `ResourceManager` keep track of memory/pointers
* let it issue handles to resources, storing a resource ID
* a `ResourceManager` or `ResourceRegistry` can then translate this ID into a ptr
* this ptr is only valid for one frame
* afterwards the `ResourceManager` is free to rearrange memory
* bind a loader on resource declaration and execute it on `Load`
## open steps/thoughts of the first attempt (just to not forget them)
* assign loader callable to resource on creation
* Templatize loaders
* remove ResourceBase (probably impossible if void ptrs are to be avoided)
* find better name for ResourceData::resource_
* Think about replacing ResourceDeclaration by callable ResourceLoader
* then resource data can be assigned a ptr to its loader and it does not need to be retrieved during loading
* check ResourceData::loader_ for nullptr
* ResourceLoader Performance test throws `basic_string` when `.dummy` is used without period.
* adjust documentation comment in the beginning of resource_data.hpp