WebIDL bindings.

**We can't merge this until emscripten 1.23.0, as this depends on a lot of new features in the IDL binder.**

Closes https://github.com/kripken/box2d.js/issues/56, https://github.com/kripken/box2d.js/issues/47, and likely a lot of others.

Removes the need for `customizeVTable`, but sadly breaks any existing code that uses it. That's progress.

After this gets merged, it should be very easy to upgrade to the latest Box2D version.

Still TODO: Bindings for array attributes. See: https://github.com/kripken/emscripten/pull/2686
I don't understand what this is doing.