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
[].concat seems like a strange pattern (though it looks like you didn't add this). Is this just meant to do the same thing as goog.array.clone?