De-managed ast::Path
Add trait-based AST visitor
Rewrite two of the visitors

Rewrites two of the visitors, the id_visitor and the ast_map visitor.
I also re-wrote the AST map to use borrowed pointers into the AST,
which means that it makes no copies of AST items.

This only changes libsyntax.
Work-In-Progress Commit

Fixes almost all the resolve errors from the libsyntax changes.
Requires a new snapshot, temporarily using aborted snapshot to
work on this.

Change entry-point finder to use new visitor
Add lifetime annotations everywhere needed