Handle key conflicts in `objectConcat` consistently.

* create a new function that handles the check,
* generate a better error message for why concating failed, and
* use the code in more cases.
Fix rendering of ShapePreservingBuilder.
Don’t let $unwind trample other uses of the field.

Fixes #494.

* fix $unwind merging,
* change some other merging to the “common source” style @mprescot and I
  had discussed before,
* remove an “auto-join” style merge case (and a workflow test for it), and
* add both a unit and integration test for queries that combine unwound
  and non-unwound versions of a field.