Add RingBuf::as_slices as per collections reform v2.

See: https://github.com/rust-lang/rfcs/pull/509

Not sure if this is allowed to land before the RFC. Either way,
it's here for review.

r? @Gankro
cc: @bfops
This code also has a bunch of bounds checking code I don't know a good way to get rid of. There's no unsafe variants for split_at and friends at the moment. See #19901