librustc: Change fold to use traits instead of `@fn`.
librustc: Remove garbage collected functions from front/{config,test} and metadata/{tydecode,tyencode}
librutsc: Port the pretty printer annotation infrastructure to use traits instead of garbage collected functions.
librustc: Make the fall-through case in match not use garbage collected functions
librustc: Don't use garbage-collected closures to store cleanups.
librustc: Remove garbage-collected functions from util/common.
librustc: Remove the remaining direct uses of `@fn` from librustc.
librustc: Change the ID visitor to use traits instead of garbage-collected functions.
librustpkg: Fix diagnostic invocation syntax in librustdoc, librusti, and librustpkg.
libsyntax: Remove some more `@fn` uses
libsyntax: Remove some more `@fn`s from the macro expander
libsyntax: Introduce routines and remove all `@fn`s from libsyntax save the old visitor
librustc: Remove `@fn` managed closures from the language.
librustdoc: Rewrite rustdoc folds to not use `@fn`.
librusti: Eliminate `@fn`.
test: Fix rustdoc and tests.
librustc: Fix merge fallout.
librustdoc: Comment out a bunch of failing tests that have not been updated to not use `@fn`.

This is in anticipation of the change to rustdoc-ng.
auto merge of #9310 : pcwalton/rust/at-fn, r=pcwalton

r? @brson