Implements symbol parsing
Symbols are now stored at parse time and not evaluated until output
(once parse has completely finished). This allows variable declarations
to take place wherever. Top, bottom or all over a file.