Attempt to cleanup toplevel Makefile

- Update the bungles if `packages.json` has changed.
- Cleanup internal dependency rules.
- Move jshint out to a new `jshint` target. This is automatically invoked
  when running `make check`, but is skipped when you only want to run
  the unittests.