librustc: Forbid chained imports and fix the logic for one-level renaming imports
librustc: Remove `fn@`, `fn~`, and `fn&` from librustc. rs=defun
libsyntax: Remove `fn@`, `fn~`, and `fn&` from libsyntax. rs=defun
libstd: Remove `fn@`, `fn~`, and `fn&` from libstd. rs=defun
libcore: Remove `fn@`, `fn~`, and `fn&` from libcore. rs=defun
test: Remove `fn@`, `fn~`, and `fn&` from the test suite. rs=defun
librustdoc: Remove `fn@`, `fn~`, and `fn&` from compiletest, fuzzer, rustdoc, and rt. rs=defun
librustc: Stop parsing `fn@`, `fn~`, and `fn&`
auto merge of #5197 : pcwalton/rust/fn-types, r=pcwalton

r? @catamorphism