Some fixes along the way to unifying flatten operations.

* fix $unwind merging so it doesn’t trample the not-unwound version on
  the other side of the merge (fixes #494),
* 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),
* fix rendering of ShapePreservingBuilder,
* use `unlessConflicts` to make objectConcat more consistent and less
  likely to generate nested documents,
* avoid unnecessary duplication of fields when concating/merging two
  groups (fixes #474), and
* parameterize freshId on the label (need to extend this to freshName at
  some point).
Merge remote-tracking branch 'upstream/master' into ready/407-merge-array-flattens
Remove obsolete backend name.
Add integration test to show that this PR fixes #472.
Merge pull request #511 from sellout/ready/407-merge-array-flattens

Some fixes along the way to unifying flatten operations.