Update 52: Rule matching algorithm

I have reworked the rule matching algorithm: it uses a simple stack
to control backtracking should a node match or edge match fail. The
matching of an edge (from its matched source or target) and the
matching of its other incident node are now done in one step since
there is no choice for the other node.

In addition, I have implemented the label matching algorithm.

I added an inedges/outedges list to the node structure so that they
can be accessed independently of their label class. This is neccesary
for the matching algorithm code.