- Add ContractEditor class overriding FunctionEditor
- Conditionally instantiate ContractEditor instead based on level builder Contract Editor checkbox
- Add use MSM contract editor parameter to level builder
- Initialize Blockly.functionEditor with other class when set
- Replace Blockly.useModalFunctionEditor usages with if Blockly.functionEditor check
- Add new FunctionalDefinition block type
- Get parameter inputs inlined
- Create functional procedure call block
- Lazy-initialize block_svg_functional parameter markers on render update
Fix function call name updating issue issue by adding Procedures.renameProcedure change handler to field
add Play Lab block to show protagonist coordinates.
Support functional procedure evaluation
Add categories and functions category to eval
Add functional parameter block type
- Use statementToCode rather than valueToCode for functional blocks
Add type dropdown stub
Add output type dropdown
Fix closure compiler warning
Add functional i18n strings
Set 'Choose type...' as type dropdown caption
Added text match assessment type.
Refactored some of the Match/Multi code to accommodate new puzzle type.

filter "onComplete" function from milestone POST requests
WIP, temporary support for setting type of last param added to flyout
Add <mutation>-based serialization/deserialization of parameter block types
Serialize / deserialize block types
add configurable textarea placeholder text to text_match puzzle type
Add parameter names on the function calls
Remove unused helper
Merge remote-tracking branch 'remotes/origin/staging' into msm_contract_editor

Conflicts:
	blockly-core/core/function_editor.js
	dashboard/app/models/eval.rb
Temporarily add a check for level.solutionBlocks in Eval app