Fix matching of wires ending in a partially-matched node-vertex

The new maps behave slightly differently to the old ones: adding an
already-mapped pair fails, even when it would not change the map.  We
now allow for this in MatchState.add_edge_to_match.
!-graph wire-homeomorphism checker
No arrowheads on undirected edges in dot output
Fix merging on isolated wire-vertices
Fix rewriter and re-enable tests that now pass

Rewriter was previously trying to pass non-normalised graphs into
match_normalised.
Remove unnecessary print statement
Fix up and re-enable hilb.ML and distancematrix.ML
Use the new homeomorphism checker where appropriate

Replacing the old isomorphism checker
Rewriter: no need to prepare the rule

find_matches and find_matches_in_subgraph do not need to return a
prepared rule, as the only thing that is done is normalisation, which is
not particularly interesting (especially as we minimise after
rewriting).
Update cosy to not use BBoxOperable
Fix vertex I/O, and document LinratAngleExpr JSON format
Merge branch 'simple-graph' into scala-refactor
string_ve theory back alive