resources: more improvements to the use of abstract resources.  resources are now implemented as subclasses of the Resource class.  Class attributes define global properites of the resource, while instantiating the Resource with a path allows the resource to be loaded and validated.