Parser & lexer tweaks.

* Fixed typo in Parser.cs (ParseExpession -> ParseExpression)
* The lexer now tracks the column number within the line, in addition to the line number to allow pinpointing exactly where a token starts in the file.
* Column numbers have been added and code has been refactored where relevant.
* Update bytecode saving/loading to include column number in debug info and gave the format a version bump.
* The lexer now enforces that a LF character must follow a CR character.
* The lexer now enforces that all multi-line comments must be terminated properly.
* The lexer can keep track of multiple line/column positions at a time. Used primarily for pinpointing exactly where an unterminated, nested block comment starts, but is also used to pinpoint where every token starts.
* Added a new boolean property to the lexer to check for EOF.
* All number parsing logic has been moved to NumberParselet. Parsing a number twice is redundant, and probably shouldn't even be done in the lexer.
* Hex and binary numbers now parsed manually so they can be parsed directly to a double, rather than being parsed to an int and then casted.
* Added a new 'Tag' field to the Token class to store additional information from the lexer to be used by the parser later on.