Add functional variable editor

Add a serialized option (a.k.a. a mutation) to functional procedure definitions which:

- displays "Variable" verbiage and hides "domain" fields when they are edited in the contract editor
- displays them in a special, separate toolbox category

![image](https://cloud.githubusercontent.com/assets/206973/5131658/e8fa6a70-70a9-11e4-9ae8-85c566920cd6.png)

![image](https://cloud.githubusercontent.com/assets/206973/5131653/da85c3d6-70a9-11e4-9fbe-d0f32523b627.png)

Yeah, reverts the accidental removal from here: https://github.com/code-dot-org/code-dot-org/commit/b7aed842baeaadb69328931eff13f4487827ce5f (had fixed that line, but apparently didn't re-build)