MRG: add box-zoom; make buttons into plugins

This PR does a lot of stuff. I probably should have separated some of the commits, but they're all interrelated.  Here's a summary:

- Make ``Reset``, ``Zoom``, and ``BoxZoom`` plugins both on the JS side and the Python side
- Add machinery so that plugins can be specified by default; make ``Reset`` and ``Zoom`` the default plugins (I didn't make ``BoxZoom`` a default plugin because for some reason it interferes with tooltips. I'll try to debug this later... **Edit:** fixed this; see below)
- create ``src/utils/icons.js`` where default icons are stored. Add zoom and brush icon to the defaults
- Some JS code cleanup: get rid of accidental globals, fix some imports in the src tree, etc.

All the tests pass for me!

FYI, you can now call
``` python
from mpld3 import plugins
plugins.clear(fig)
```
to get rid of the default ``reset``/``zoom``/``boxzoom`` buttons.

If you want to add them back in, use
``` python
plugins.connect(fig, plugins.Reset(), plugins.Zoom(), plugins.BoxZoom())
```