27 merge raise for status

This adds a raise_for_status call to the merge function, so an an Exception is raised rather than inadvertently merging error JSON with a document.

I popped into test/ to see if I couldn't cover the error case, but looks like it would behoove us to pull out the tests into individual test modules and toss in a mocking harness to use when ideal. I didn't want to throw a ton of changes into this PR, so take a look and perhaps we can beef up the test suite a bit later.