Makes InstructionSelector.h/InstructionSelectorImpl.h generic so the match tables can also be used for the combiner.
Some notes:
- Coverage was made an optional parameter of executeMatchTable, combines won't use it for now.
- GIPFP_ -> GICXXPred_ so it's more generic. Those are just C++ predicates and aren't PatFrag-specific.
- Pass the MatcherState directly to testMIPredicate_MI, the combiner will need it.
What's the point of having 4 copies of 0?