This is a substantial reimplementation of the code selection support for pattern matching constructs. By using auxiliary stacks to record the state of the parser and by using that state to drive the bottom up context recovery and parse tree construction, we now rebuild the parse tree to sufficient detail to ascertain liveness of pattern binding variables at the point of selection.
Fixes #1195
Fixes #769
Fixes #1263
Fixes #1360
Fixes #1364
Fixes #1278
Fixes #1288
Verifies https://bugs.eclipse.org/bugs/show_bug.cgi?id=573257
Verifies https://bugs.eclipse.org/bugs/show_bug.cgi?id=572975
Verifies https://bugs.eclipse.org/bugs/show_bug.cgi?id=576794