DeleteResource() can now take data as a parameter

This has been add in case some form of data needs to be passed
This makes the resource manager more flexable, meaning direct and low
level management is no longer required
Added ResourceManager.[h/cpp]

This is that last piece of the resource management system
This part manages everything it is given to manage
The system may get altered in the future
As of now this is how it works:

A resource (int, GLint, etc which may be shader, tree, map, etc) is
wrapped using a derived class of the virtual class IResourceWrapper<T>
this class abstracts the type and standardises some of the core
manipulations that can be done
Next, the resource is added to a derivative of IResourceLoader this
abstacts it even more while also managing multiple different resources (of
the same type), the resource loader can managed a group of types as no
feature of the resource loader adds such a limitations
Finally comes the ResourceManager Class. This class is the ultimate level
of encapsulation, managing any loaders given to it this means that you can
effectively manage everything from within one object, giving a high level
of control.

Future versions of it will be some content aware so that it limits how
much is added of a specific resource, also a type safety to prevent the
wrong type being given to a resource as there is nothing as of right now
other than makiing sure that right type is passed to prevent such an
error