Adding "watch" task for live testing and compilation

#### What

- Adds a "watch" task that runs tests and compiles when a source file is changed.
- Changes the "js" task to run tests before compilation.

#### Why

- Easier to get real-time feedback on changes that break existing tests.
- Running tests before compilation will prevent builds that break tests.