build correct workflow for groupby with JS (Fixes #469)

Avoid creating GroupBuilders on top of ExprBuilders, and conversely
favor making ExprBuilders over modifying the base in
ShapePreservingBuilders. This fixes all the cases covered by the
existing scalacheck test.

Added a pending test for queries with filtering, some of which are
still not working right (see #524).

Now simplifying JsCore that was generated by collapsing some of these
cases—specifically selecting a field from an object literal where the
keys is a constant.

Fixed an infinite loop in fixplate.

Improved RenderTree instances for \/ and These: no more blank nodes;
use nodeType, not label.
You are correct. Apparently argonaut is being liberal here. We have at least a couple of tests that use this. I think it's worthwhile to include queries with newlines, to verify that our parser handles them correctly, but obviously they could be encoded in the test files. I only used actual newlines here because it improves readability slightly.

What does it buy us to be pedantic about JSON compliance here? Do we imagine that we'll be using other tools to parse these tests? JSON is already barely pulling its weight as a DSL for these tests. Shouldn't our test infrastructure allow us to write queries in a natural way?