Add blockly modal function editor

Goals:
1. Hide function definition when not being edited
2. Improve discoverability of parameters
3. Improve discoverability of creation
4. Improve discoverability of edit

This change builds on the following WIP review:
[#244 [WIP for review] Support multiple top-level SVG Workspaces and Toolboxes](https://github.com/code-dot-org/code-dot-org/pull/244)

![screen shot 2014-11-03 at 4 10 51 pm](https://cloud.githubusercontent.com/assets/413693/4892812/70b6b96e-63b7-11e4-82ed-5790da63450a.png)
onchange appears to get set by child classes, e.g., `blocks/procedures.js:procedures_ifreturn:onchange`

'onChangeHandle' is the blockly core `Blockly.bindEvent_` reference required to de-register an event using `Blockly.unbindEvent`. Elsewhere this is known as "opaque data" but didn't think it was specific enough.

`onChangeEventHandle`? `onChangeEventReference`?