Add JSHint support and enable strict mode

Fixes #280. Fixes #285.

TODO:
- [x] Check the `global` directives
- [x] Fix the device image isn't updated with the component used.
- [x] Agree on the JSHint options
- [x] Enable `bitwise` and ~~`immed`~~, remove `boss`

/CC @connor @connors @cvrebert @mdo