Implement remove for RingBuf

Includes a fix for a small mistake in `fn insert` which is caught by test_insert for len=15, but not len=7.

Part of #18424

r? @Gankro @csherratt @huonw 
Should I refactor these parts of `insert` to match `remove`?