Refactor base resource handling for absent resource classes

Added helper method BaseResource.extendAs(type)
Give each resource type an automatic extension of BaseResource
Singularize the root JSON resource name for the above
Automatically wrap request JSON with resource type