Make syntax::owned_slice a Box<[T]> wrapper.

This makes it correct (e.g. avoiding null pointers) and safe.
Why do we need this in the prelude?