Vc<T> and Turbo Engine type system improvements (#4587)
This PR changes our Turbo Engine code generation from generating
additional `TypeVc` types to allowing the `Vc<Type>` notation. It also
brings other improvements to the Turbo Engine type system, like more
type-safe downcasting and upcasting, better support for primitives, the
possibility to accept `&self` in `#[value_impl]` implementations
everywhere, and a bunch of other changes.
link WEB-379