Update 65: Rule Analysis

Created a new module 'transform' that handles the analysis of the GP2
program from its AST. I have written a procedure to traverse the AST
of a GP2 rule and extract the necessary information and structures.
The procedure creates the LHS/RHS graphs and collates information
concerning which nodes/edges are added, deleted and preserved.
All of this is stored in a rule structure, defined in the 'rule'
module. Currently labels are ignored, but structural analyis of rules
works smoothly for simple rules and for more complicated GP2 programs
with procedures.

In addition, I have recoded parts of the graph module to respect
the changes to the stack data structure made in a previous commit.