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.
JSON works fine, and over time, if the project is successful, the majority of tests will not have been written by core developers -- they'll have been written by users of the software and possibly internal QA. While a Scala DSL for defining these tests would be much easier for core developers to use and more powerful, it would be far less friendly than a JSON format which can be trivially generated from a front-end tool that allows users to fill out the 5 - 10 options supported.

Since we're the only consumer of these tests for the foreseeable future, I'm fine being lax with enforcing strict JSON semantics. I do want tools to generate JSON from a nice web front-end (maybe in SlamData), as well as tools to report on test coverage, but the latter tools are likely to be written in Scala and therefore use Argonaut, anyway.