Kernel refactor [preview]

For @ajs6f comments.
Well, point 1 is looking good. Even if this isn't the perfect typing structure, it's better than a handful of confusingly-named methods.

For point 2, we have given some thought to that, and people can distinguish different sources of triples via the params of this method, so this is still an improvement.

For point 3, it's a little tricker, because we haven't thought all the way through that problem (to my mind). So let's take a use case: factoring LDP out of the kernel. If the elsewhere-proposed LDP API module came into existence, would it be appropriate for that module to extend the capabilities of this method to produce LDP triples? And if so, how would it do that? Via a new subtype of `RdfStream` to be passed in here?