feature/baseresource

added new functionality and revised existing functions of `baseresource`.

as previously noted in my old PR, the changes to the other resource classes are to make sure the build passes. 
if this PR succeeds, the other resource classes will be PR'd.
I still think that some suitable exception should be thrown here so that the server can return a 500 error if redis is inaccessible? (rather than returning ``false`` lower down).