Simplify browser testing

This switches to plain CommonJS for test files by browserifying them
at test time.  It removes `test-support` in favor of a custom test runner
based on code in `test-support`.  It also updates to buster 0.7.x and
jshint 2.x

---
(Original message)
This is only for discussion right now.  The current browser testing setup
is pretty complex.  It works great, but requires extra machinery (curl,
curl config, a run.js that does some curl-privileged stuff), what feels like
an overly involved buster config, and extra boilerplate in each test file.

It would be great to simplify.  Looking for feedback on this general direction,
suggestions, contributions :D, etc.

For this experiment, I converted 2 tests (inspect-test and join-test) to
"plain" commonjs--no boilerplate, except one sniff for window.buster
vs require('buster'), which we may also be able to eliminate via
browserify's -x switch. `npm run browser-test` builds those into a
single file: `test/browser/tests.js` and then runs buster-static.

This seems to simplify things a lot.  There's no need for curl or curl
config, or the curl-privileged hoop jump.  It also gets rid of the amd
path/moduleid boilerplate.

However, this means the current test-support saucelabs setup doesn't
work.  I didn't dig into making saucelabs work yet, but will soon.

Also, I switched to es5-shim/sham out of laziness.  We could probably
browserify poly and get that to work.

cc @scothis @unscriptable @jenius @jaredcacurak