memory leaks in YACC grammar file

1) Since we are allocating the token strings on the heap,
we need to tell Bison how to clean up the heap in the event
of an error. We use the %destructor directive for this purpose.

2) We need to manage the heap to prevent memory leaks when
the parser succeeds. Therefore, I have rewritten the grammar and 
I propose we use an intermediate "object" rule to do 
the memory management. This requires the addition of the %type 
directive so the pointers get passed to the object rule correctly.