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)

Done in `[ecf2849](https://github.com/code-dot-org/code-dot-org/commit/ecf28490e0ee4f90bf59d89e951d9820af4ec927)`