Added n-way merge ctor and do flattening in <>, and fix `before`
Added n-way merge ctor and do flattening in <>, and fix `before`

Previous implementation of `before` would look only for exact subgraph match, which could incorrectly return false depending on how the two graphs were factored. By flattening the two graphs at merge points, this source of incidental differences goes away. You only need to check for submaps at each merge point.

unisonweb/platform,unisonweb/platform,unisonweb/platform