execute JSON-encoded regression tests against multiple backends

This is looking much better after the third re-write or so. Now using Argonaut's DecodeJson and a RegressionTest case class to encapsulate loading the JSON tests, and using Tasks in a fairly disciplined way to encapsulate/chain the effects of setup, query, and verifying results.
It seems that Argonaut's cursors don't distinguish between "nothing at this path" and "the thing at this path can't be converted to X". I wanted to be able to produce `None` or a default value if a key was missing, but give an error if it was present but in the wrong format.