The beginning of the semantic analysis module.

- Modified ExAr to take two type parameters
- Modified Graph.hs according to new ExAr
- Created new file SemanticAnalysis.hs that defines Symbols
  and a symbol table implemented with ExAr.
Minor changes to the syntax and parser.
Started implementing semantic analysis.

I have modified ExAr.hs so that ExArs take two parameters. This
way I can use ExArs for symbol tables. Hence Graph [HostLabel]
becomes Graph Int [HostLabel].

I created data types for symbols and symbol tables, and wrote
functions to add rules, procedures and variables to the symbol
table.
Parser for rules now generates [Variable]
Wrote functions to transform AST graphs to associative array graphs.
Separated symbol table code and graph generation code.
Merging local changes to master.