Add functional variable editor

Add a serialized option (a.k.a. mutation) to functional procedure definitions which:

- displays "Variable" verbiage when they are edited in the contract editor, and hides "domain" fields
- 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)