Broke some of the entity initialisation out into an invoker class. This leaves the entities a little more light weight.
Also added some documentation to some already existing classes.
The data is now transformed from a plural key to a singular key. For example "artists" becomes "artist" when working with a resource.
The resources now require a "request" method with a parameter "id" to be defined. A collection no-longer inherits from a resource, instead they are their own entities now.