Remove references to unused substitution variables in getJSToNativeConversionTemplate.
Use CGIfWrapper in instantiateJSToNativeConversionTemplate.
Move the handling of default values in getJSToNativeConversionTemplate into handleOptional.

This is a first step towards moving responsibility for default values into the
caller, which should improve their code (in particular for the dictionary
codegen.

This also introduces a Dictionary::empty function, whose implementation is a
hack. The implementation will be improved once its codegen has access to the
raw default values.

Besides dictionaries, this commit does not change the generated code.
Remove getJSToNativeConversionTemplate's initialValue return value.

This commit does not change the generated code.
Move the assignment of 'None' in the no-argument-passed case into an else branch.

This is the only case where we assign into an argument local twice, so removing
it will allow us to make that binding immutable.
Move the assignment outside the if when dealing with optional arguments.
Assign into the argument binding directly in instantiateJSToNativeConversionTemplate.
auto merge of #2299 : Ms2ger/servo/getJSToNativeConversionTemplate-cleanup, r=jdm