Stop allocating view_items with @
De-managed ast::Path
De-manage Lifetime
De-share trait_ref

Also, makes the pretty-printer use & instead of @ as much as possible,
which will help with later changes, though in the interim has produced
some... interesting constructs.
De-manage OptVec<TyParamBounds>
De-share ast::Ty
Clean up warnings
Fix rustdoc and rusti
Fix broken tests
auto merge of #7615 : Aatch/rust/syntax-deshare, r=graydon

In an ideal world, the AST would be completely sendable, this gets us a step closer.

It removes the local heap allocations for `view_item`, `Path`, `Lifetime` `trait_ref` `OptVec<TyParamBounds>` and `Ty`. There are also a few other smaller changes I made as things went along.