Bug 980410 - Implementation of toolbox panel

Note that dev/volcan.js has being reviewed by @dcamp separately form this, so feel free to ignore it.
Wouldn't `(target, type)` be more in line with the other event methods? I'd prefer this function handling all kinds of bindings, [like used in devtools](https://github.com/mozilla/gecko-dev/blob/8f2fb6c989c43456efef81385ea87327bfd5b7d7/browser/devtools/webaudioeditor/test/head.js#L84-L104), and would no longer need `sdk/dom/when`, which does the same thing as this, except with a different target. Users shouldn't care about targets.