Fixed multi input file sourceMaps and errors

Errors during the lexer/parser phases are simply attributed to whichever
file last started parsing. After that, locationData on all nodes is
amended with `file_num`, which references the filenames and scripts.

These are used for compilation errors, run-time backtraces and
(inline) sourceMap generation.

Also, sourceMap generation from fragments is now done by the SourceMap
class itself, so that this functionality may also be accessed
seperately from CS.compile.