vec: minor cleanup
implement Box<[T]> <-> Vec<T> conversions
improve the performance of the vec![] macro

Closes #17865
auto merge of #17920 : thestinger/rust/vec, r=aturon

Introduce conversions between `Box<[T]>` and `Vec<T>` and use it to reimplement the `vec![]` macro for efficiency.