Add "delete" convenience method, and refactor

Adding `Resource::delete()` rounds out the "do 'foo' against my relation 'bar'" convenience methods of `Resource`. The growing size of `Resource` prompted me to refactor out the factory methods into their own `ResourceFactory` class.

This also seemed like the right time to remove the deprecated methods. They are still in use in `project-folders` as of this writing.

* [x] look through to make sure these design changes are sane