Better handling of merging facets.

(1) Always keep the Map<Type, List<Restriction>>, since that's what
we're consistently working with.
(2) Preserving parent scope facets doesn't matter, as it will never be
used again.
(3) No merge is necessary if either the parent or child is empty; just
return the other one.