another test file in root.
Add NodeId to `ast::Arm`.

The motivation for this is to delimit the scope of bindings introduced
by patterns on a match arm to just the expression and guard associated
with that arm.

It is possible that we may want to not to it this way, since I have a
vague impression that the rules are going to change so that when a
value moves into an arm's expression, the arm's guard will bind
by-reference, which may mean it will make more sense to just have
distinct representations for the two kinds of bindings that are
treated independenty by rustc's analyses.

But this was the easiest way to get it done in the short term.
Make `var_parent` of a match arm's pattern be the match arm body.

This was inspired by how `ExprForLoop` is handled; I had assumed it
"couldn't possibly work" when I had considered it before, but
apparently it does.  Or at least, it might.
Hack in span support for arm's (by identifying an arm with its body, for now).
Various changes to region inference to try to address issues with Arms with NodeIds.
Attempt to address issues with Upvars in LoanPath::to_type.
More debugging code for trans issue.

This issue was probably injected by arms with NodeId's, but that is not 100% certain.
more tests in the local root.
TEMPORARY: stdlib changes to sidestep warnings from my needsdrop analysis.