Lexer error message fixes.

bad9516 Lines were showing up as "undefined" for error messages related to numbers. This is because the line was never added to the list of lines. In order to do this I had to increase the scope of `lines` and `lineStr` (and the c lines too) so that the line could be added from within `modechange`, `makeNumToken`, and `fromBase`.
3911992 For numbers such as 0x1bc.1f, the error message given was "No such digit in base 10: 'f'." whereas the correct message should have been "Numbers in base 16 can only be integers." This has now been corrected.