[libc] Implement vector 'split' and 'concat' routines (#157537)

Summary:
This provides some helpers for the split and concatenation routines for
changing the size of an existing vector. This includes a simple tuple
type to do the splitting. The tuple doesn't support structured bindings
yet.

The concat function is more limited than what would be ideal, but the
shufflevector builtin requires things of equivalent sizes and I
didn't think it was worth wrangling with that just yet.

GitOrigin-RevId: 0b87d27097dc71916dd041e5be87fefd26006867
3 files changed