Draft 4 support

I think this is in a good place now. Merged in the draft4 tests I have over at the test suite repo. Let me know what you think should be changed once you get a chance to review.