Require &Crate instead of @Crate

This help enable some later refactorings.
Remove all usage of @ast::Crate