Function definition <> usage update changes [finishes #82330204]

# Both editors

* Rename many of the mutator / quark variable and method names to be more specific / descriptive.

# Course 4 Editor

* Retain existing connections on function usages when removing / renaming function parameters ([demo video](http://screencast.com/t/lyPr0mGr))

![image](https://cloud.githubusercontent.com/assets/206973/5055550/ce5c77d8-6c19-11e4-951a-4175eb11b126.png)

# Contract Editor / functional call blocks

* Update function callers when definition block updated 
* Serialize and deserialize parameter types

[demo video](http://screencast.com/t/A43pzjrkpL)

![image](https://cloud.githubusercontent.com/assets/206973/5055605/f58dce64-6c1a-11e4-8289-d7b6c7d30600.png)

Couple of high level things I'm wondering—

* Is having a blockSpace.signals bus just silly or potentially useful later?
* Is it worth trying to refactor those parallel argument arrays / their quirky reset+initialize logic now or wait for another use case to come along
Can we instead return this an on object? Seems like that would be cleaner than an array of arrays. ie. return { paramNames: paramNames, paramIDs: paramIDS, paramTypes: paramTypes }. Then we can elsewhere we can do stuff like paramArrays.paramIDS = null instead of paramArrays[1].