Make ast::Lifetime contain ast::Name instead of ast::ident

Fixes #7743. To make the compiler happy, I rewrite a use case of the "quote_item" macro. After we get a compiler snapshot that includes this change, the manual ast construction can be reverted back to using "quote_item".