Gracefully handle 'catch' and 'finally' blocks without a preceding 'try' block.

Fixes #216.

As a note of this fix, when a 'catch' block is followed by a 'finally' block, only the 'catch' keyword gets an error reported on it.
Added tests for missing 'try' parsing
Simplified error recovery by just using 'parseTryStatement'.
initial change
push newline to compilerhost instead of using sys directelly. This allows the language service to set it, as sys is not defined in language service scenarios
cleanup
Change classes into interfaces
add module to defaults, and cleanup document management
Do not use noResolve with the LS
wire quick info
Ensure SimpleArrowFunctionExpression has a NodeArray as its paramter as ForEachChild expexts that
wire in getCompletions
use Map instead of StringHashTable
Switch some more classes to interfaces
remove dependency on settings
use Map instead of IIndexable
remove unused files
Move ByteOrderMark to services
Delete unused files
Remove unused type