Add lint and compile watcher. Move from TSLint to ESLint. (#159)

* Add lint and compile watcher. Move from tslint to eslint.

This commit adds a "grunt dev" task which signficiantly improves
productivity by watching the src/ directory and recompiling and
relinting files on save.

It also moves the linting from TSLint to ESLint. TSLint is being
deprecated, and ESLint is the recommended path forward. It also
has nicer integration with prettier for code formatting. gts, the
Typescript styles we extend, is also in the process of migrating,
so this commit updates to using gts@next which includes the eslint
config.

* Update eslint config, errors instead of warnings

* ESLint: Sort imports

* ESLint: Remove empty block and inner functions from cmdline.ts

* ESLint: Remove unecessary escape characters

* ESLint: Suppress empty catch blocks

* ESLint: Suppress no-unused-var

* Use ESLint plugin import/order instead of sort-imports

This reverts commit 4a10503bfa277a045ae4a0508f723cac3cee6e22.
and includes some additional small fixes

* Remove uneccessary allowUmdGlobalAccess
diff --git a/src/webgpu/examples.spec.ts b/src/webgpu/examples.spec.ts
index 7cbe5b7..6db698c 100644
--- a/src/webgpu/examples.spec.ts
+++ b/src/webgpu/examples.spec.ts
@@ -21,6 +21,7 @@
 export const g = new TestGroup(GPUTest);
 
 // Note: spaces in test names are replaced with underscores: webgpu:examples:test_name=
+/* eslint-disable-next-line  @typescript-eslint/no-unused-vars */
 g.test('test name', t => {});
 
 g.test('basic', t => {