Pipe delayed model changes through DeltaBuilder. Now DeltaBuilder has control over most of the model changes (except for weavings, where delta is not built at all), and we are ready to separate reference resolution from structure inplace update.
Refactor CoerceWithPattern_to_statement - LABEL instead of IF for mapping label, don't use ReferenceMacro where regular template reference is possible.
Apply inplace structure model changes once reference resolution had finished over intact input model. Effectively, outputNode in ReferenceMacro are not part of any model at the time of reference resolution, while input model is complete and allows any sort of walking. Unlike earlier approach, when only input nodes with their properties were easily available (references too, although not quite reliably), present one seems to be better as there's no promise (in the doc) about RM's outputNode,  while it's reasonable to expect input model being intact. This is also aims to solve issues with complex ReferenceMacro (e.g. get type of input node or find all nodes of a given kind) - the only issues left that prevent wide adoption of inplace transformations.
Revert change in ThisExpression template - now complete input model is available at the time references get resolved
Revert change in PropertyAccessorParameter template - use input node, not output as complete input model is available now at the time references get resolved
Respect the case when MAP-SRC creates nodes that are at the top of in-place change
1. Drop requirement to specify input node for COPY-SRC, use current input node by default - less burden on template developer (e.g.
there are 77 COPY-SRC queries with 'node' only in collections language generator)
2. Better message for MAP/COPY-SRC macros when optional fields are not specified. 'default' makes me feel there's some behavior if I didn't specify one, while there's none, in fact.
Drop input node query for 77 COPY-SRC macros with 'node' query
Merge branch 'master' into 3.1/artem/default