Devoncarew jshint

Add javascript analysis via jshint.

- add the jshint library to `third_party`
- write a dart wrapper around the library
- write a javascript builder which invokes jshint and converts its results into spark markers

The analysis happens in the DOM thread. We could move this into an isolate. This will only really matter for large javascript files. We may want to hide this behind a developer flag for a bit to give the feature time to mature. We may also want to not analyze javascript files where the first line is very long, in the assumption that it is a generated/minified javascript file.

@dinhviethoa, @ussuri