Fix let bindings in trans/borrowck
rebase wip
wip

remaining failures:

failures:
    [run-pass] /home/nmatsakis/versioned/rust-2/src/test/run-pass/issue-2642.rs
    [run-pass] /home/nmatsakis/versioned/rust-2/src/test/run-pass/match-pattern-drop.rs
    [run-pass] /home/nmatsakis/versioned/rust-2/src/test/run-pass/placement-new-arena.rs
    [run-pass] /home/nmatsakis/versioned/rust-2/src/test/run-pass/static-method-test.rs
Cleanup arguments in _match::store_arg, remove dup code from base
remove assert that does not hold until we make lets more direct
Move all local variable initialization into _match::store_local()
to accommodate things like "let x: uint = return"
Optimize 'let x = ...' and 'foo(x: T)' cases so that we generate less crappy
code. Replace sketchy uses of intrinsics::init() with more explicit versions;
the generated code was crashing because we assumed that @T was non-null, which
seems like something we should be allowed to assume.
Fix handling of moves in patterns
Test for incomplete patterns