Support for --charset command line option
File read and write errors are propagated into compiler diagnostics
emitFiles returns diagnostics in EmitResult
sys.readFile checks whether file exists before reading instead of relying on exceptions
sys.writeFile returns a boolean result and doesn't use exceptions to communicate errors
Disabled code to create directories until performance has been verified