Remove duplicated test
Use a set, not a subgraph, to control where the inner match search looks

Rather than maintaining both a tgt and a full_tgt graph in the match
state, we only retain a tgt (which is what full_tgt used to be), and
also a set tgt_verts (aka T) of unmatched vertices to match onto.

When we have !-box matching, this will be used for more fine-grained
control of where the matching happens.
Separate MATCH_SEARCH and BG_MATCH_SEARCH completely

These two interfaces do two very different types of matching, and
BG_MATCH_SEARCH does not really need to include MATCH_SEARCH.

This will be more important when BG_MATCH_SEARCH takes a completely
different pattern argument (in later commits).
Encapsulate bbox operations for matching in a structure

BBOX_OPERABLE_GRAPH is used by the matching code to do the necessary
operations on the pattern graph; indeed, for the outer loop of the
greedy matcher, it essentially replaces the pattern.

The idea of this is that we don't have to necessarily record the
changes.  Instead, we can just operate on both sides of a rule at once,
but without the matching code even knowing what a rule is.
Return a Match instead of a MatchState from matching algos

MatchState should be an internal detail of the matching algos.  the
MATCH structures encapsulate a finished match result (and the mk
functions enforce correctness).
Make BANG_GRAPH_MATCH_STATE wrap OGRAPH_MATCH_STATE

...rather than doing the functorise-the-data fake-inheritance dance.
Fold BangGraphMatchState into GreedyMatchSearch

Nothing outside of GreedyMatchSearch uses it, and other matching
implementations will want their own match state.
InnerMatchSearch -> ProgressiveMatchSearch

This is more descriptive
Rename bbox_operator.ML to bbox_operable.ML
Merge branch 'bg-matching' into simple-graph. Initial merge. Def doesn't build at this point.

Conflicts:
	core/ROOT.ML
	core/matching/bang_graph_match_state.ML
	core/matching/concrete_match_search.ML
	core/matching/greedy_match_search.ML
	core/matching/inner_match_search.ML
	core/matching/match.ML
	core/matching/match_search.ML
	core/matching/match_state.ML
	core/matching/simple_inner_match_search.ML
	core/matching/test/test-matching-setup.ML
bbox operable fixed