Update 39: Made the naming system consistent.

The freeing functions and all functions in pretty.c and seman.c
were renamed to lower camel case. They were previously lowercase
with underscores.
Update 39: Tidying up.

Added typedef char* string to ast.h and replaced occurrences of
char* with string in all files except gpparser.y. I also added
const to some function arguments in pretty and seman.

Moved function description comments to header files in all modules.

pretty.h/c
- Removed global variables dot_file and next_node_id.
  Now they are created in printDotAST and printDotHostGraph.
  These functions pass the variables to the other pretty printing
  functions.

seman.h
- The last two arguments in the prototype of atomicExpScan were
  int_check and string_check. In seman.c they are int_exp and
  string_exp. I changed the variable names in the function
  prototype.i
Update 40: Debugging.

I modified the List syntax so that Bison can perform error recovery
from an atomic expression. Now lists are required to end in a ':'
so that the "error ':'" rule acts properly even if a syntax error
is encountered in the final element of a list. This necessitated
a change to the List productions in the grammar.

gpparser.y
- Changed names of host graph symbols e.g. CExp -> HostExp

gplexer.lex
- Added rules to handle new lines within string and characters.
  If this happens then the parsing terminates.
- Added yyterminate() calls after every regexp matching <<EOF>>.
Update 41: More tidying up and debugging.

The list error recovery described in the last commit does not actually
work. I have abandoned the idea of using Bison's error token within
a GP List as I cannot figure out a way to ensure that the error
will not propagate should a syntax error occur in the last item in
the list.

I have also made some small cosmetic changes, including creating a new
enum type for symbol types. This is consistent with the "typing system"
of the AST structs, and it's cleaner to me than using plain strings.
I had to write an auxiliary function symbolTypeToString in pretty.c in
order to pretty print the new struct Symbols.
Update 41: Yet more tidying up.

Hopefully a final tinkering of comments and formatting for the
parser/semantic analysis code.

gpparser.y
- Added %destructor calls to the appropriate freeing functions for
  each of the symbol types.
- Added AST constructors to each of my error-catching productions
  as Bison was producing a lot of warning about unset variables.

pretty.c/pretty.h
- Reverted back to using a global variable for next_node_id instead
  of passing it as an argument to the pretty printing functions.
  It's easier that way.i