Update processing model to most recent spec + add processing model tests

Depends on #194 #187, #198.

Fixes #173, #148, #110.

This isn't ready to land yet as we need to land the others first and I still need to give it a once over to make sure that the tests are correct.

Some of the CSS settings we set don't currently work in PhantomJS for some reason, as well as `document.createProcessingInstruction`. I'm currently trying to figure out how to get PhantomJS to support it as it's in the source and Chrome and Safari have it, so I would think PhantomJS would be able to have it as well. I've disabled processing model tests on time stamp tests for now for this reason.

I don't think we should block on these things though and just fix them as we either get PhantomJS to support it or move to Testling. See #158 for more discussion.