More complete argument handling and rustc update

Now handles closure arguments (very incorrectly!) and basic argument name
extraction. And yes, I rolled up the update to rustc master into this, because
I am too lazy to do a proper git commit -p.