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.
Because often types we introduce unnecessary dependency between components, for example my API want's to validate compatibility of a given `options` with a given `constructor` without having to import all possible contractor functions that maybe given to it.

In other words this here just so that we can do `validate.define(MyComponent, function(...) { ... })`