Add `node_to_user_string`, `node_to_string` variant that drops id from output.
Added code to emit the gen/kill sets in source annotated form.

When you add `rustc_drop_obligations` as an annotation on a function,
it will print all of the drop-obligation manipulations as individual
compiler errors associated with the expressions that caused the effect
on the drop obligation state.
A pair of tests illustrating the `rustc_drop_obligations` instrumentation attribute.
added dataflow additions for fragmented drop obligations.

This reestablishes this branch as an appropriate basis for
fsk-needs-drop-analysis-2.
Added state tracking whether a given cfg node is reachable or not.
revised control-flow-graph to indicate that we flow into heads of patterns
before their subpatterns.

This makes sense when you think about the flow of how one checks if
patterns match.  Patterns are matched from top-down (while
value-producing expressions are built from the bottom up).

It also solves a problem for the dataflow of needsdrop.
slight generalization of dataflow in prep for needs-drop analysis.
Added optional printing of drop obligations to flow graph.
Extended `DefBinding` to unify idents in patterns like `A(x) | B(x)`.

Adds `BindingAliasMode` enum and attaches it to `DefBinding, tying an alias to a
uniform representative for the set.  Extends `resolve` to actually construct
such a thing properly.

Leaves the question of what to do about DXR as an unresolved FIXME in
`rustc::middle::save`.
Add Method ids to pretty-print identified output.
Extended move_error to track moves into wildcard patterns as well as idents.
DO NOT CHECK IN: diffs and patches for rust-needsdrop.

updated the expurgated diff.
update needs-drop-expurg.diff
update the expurgated diff.