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.
Why not a WeakMap getter for `targets`?