Began cleaning up the parser by removing globals.
Reorganizing the AST module.
Removed another global, added seperate gear_parser file.
Added exception class.
Made error message 'uniform' - parser errors and runtime errors are formated the same now.
Fixed possible array/crash issue.
Assertions now handle file_name and lines.
Renamed 'primitive' to 'p' in gear_value struct.  Also fixed issue with given an exception a file name if deeply nested.