Fix tuple umerging
Fix tuple umerging

- proper segregation of comparison between tuple terms and non-tuple
  terms. Guards weren't specific enough and that meant the wrong clauses
  of guards would be triggered
- proper deduplication of entries in the list. An additional N passes
  are required (we co-opt the reverse step to be more efficient) because
  while the original lists:umerge easily removes dupes, this is
  requiring more logic here since `[a,{a,b},{a,b,c},a,{a,b,c}]` is a
  possible interleaving and we'd want `[a,{a,b},{a,b,c}]` -- comparison
  of direct neighbours isn't enough.

vladdu/rebar3,fauxsoup/rebar3,fauxsoup/rebar3,ferd/rebar3,norton/rebar3,djnym/rebar3,lrascao/rebar3,rebar/rebar3,saleyn/rebar3,tsloughter/rebar3,rebar/rebar3,erlang/rebar3,benoitc/rebar3,benoitc/rebar3