Like rustc, we need a way to deal with arrays of mostly wildcard patterns. We
steal rustc’s solution of grouping all patterns not explicitly stated in one column
of a pattern into a group of missing patterns. That way those can be checked groups.
This function groups all the missing patterns when given a list of constructors
Takes a list of integer range constructors which are possibly overlapping and
creates consecutive non-overlapping constructors with edges at each point where
any original edge has a range.