Return the union of two non-empty lists. Duplicates, and elements of
the first list, are removed from the the second list, but if the first
list contains duplicates, so will the result.
(1 :| [3, 5, 3]) `union` (4 :| [5, 3, 5, 2]) == 1 :| [3, 5, 3, 4, 2]