parameter removed from 'jumpToError' method
added edge from try start to error through finally block

KT-2845 Wrong cf-analysys for variable initialization in try..finally
 #KT-2845 fixed
todo: some errors now are reported for several times (each time when analyzing finally block)
added copy() method to Instruction
add assert to ControlFlowTest
store references to instruction copies
inside instruction
Added optional custom names to labels in pseudocode
updated allow dead instructions handling

Added labels collecting:
Allow dead instruction block can have several starters and
one stopper that knows all corresponding starters by labels
Reporting the same diagnostic only once for copied instructions
(depends on whether it should be reported for all or only for one of the copies)

VariableContext introduced
updated test data for try-finally
refactoring: traverseForward and traverseBackward
instead of boolean parameter 'directOrder'
check uninitialized vars inside local declarations

added parameter 'includeInsideLocalDeclarations' to getDeclaredVariables
added repeat pseudocode method

repeat from startLabel to finishLabel
(logic is inside PseudocodeImpl)
added tests for 'copy' finally pseudocode part
added ThrowExceptionInstruction
(to store throw expression in it)
added names for loop labels

updated control flow test data
added tests for KT-2369, KT-2585 and KT-2972

KT-2369 Variable is not marked as uninitialized in 'finally' section
 #KT-2369 fixed
KT-2585 Code in try-finally is incorrectly marked as unreachable
 #KT-2585 fixed
KT-2972 Wrong "unused value" warning when finally is present
 #KT-2972 fixed
KT-3141 Use iteration instead of recursion in traverseInstructionsInReverseOrder and traverseNextInstructions.
refactoring: merge traverseNextInstructions & traverseInstructionsInReverseOrder
into one method (traverseFollowingInstructions)
TraversalOrder enum instead of boolean flag
use upper-case L in label name instead of lower-case