Cleanup legacy_union and legacy intersect in value_range.
These are cleanups so that multi-range union/intersect doesn't
have to deal with legacy code. Instead, these should be done in
legacy mode.
gcc/ChangeLog:
* value-range.cc (irange::legacy_intersect): Only handle
legacy ranges.
(irange::legacy_union): Same.
(irange::union_): When unioning legacy with non-legacy,
first convert to legacy and do everything in legacy mode.
(irange::intersect): Same, but for intersect.
* range-op.cc (range_tests): Adjust for above changes.