Extract JCR-agnostic resource interfaces out of FedoraResource/Datastream

Okay, so the first assertion (via `RdfSource`) is that descriptions come as RDF (sold!), and the second assertion (via the shared parameter `T`) is that descriptions must be backed by the same kind of thing that backs what they describe. So we're disallowing (for example) a resource backed by some weird persistence with a description in MODE, _unless_ the weird persistence instance can appear as a JCR node. 

I think this is a good idea. I want to be sure we understand how powerful it is.