Improve the Resource Manager interface

Remove ResourceData, ResourceHandler and ResourceHolder.
Use IResourceHolder and TResourceHolder instead, and a map of string unique_ptr<Resource> pairs.
Removed the loading later mechanic. Thus removing the addition of resources.
No need to get a holder first and then call function on it, the more intuitive way now is to use
tempalte member function inside ResourceManager, e.g. manager.load<sf::Texture>("path/to/image.png");