Fix and use RDF streaming

https://www.pivotaltracker.com/story/show/80671446
https://www.pivotaltracker.com/story/show/59236554
My habit is to throw an `AssertionError` for these "unreachable" blocks, just to make sure that the business logic is correct and is respected. Also, there's maybe a TODO here to factor in a `switch(){}` instead of a series of `if`/`then`s. That would be clearer for flow and would replace the last else with a `default {}` which I think is usually clearer.