Implement insert for RingBuf
Add support for equality constraints on associated types
Mostly non-behaviour-changing changes (style, etc.)
Reviewer comments
auto merge of #19391 : nick29581/rust/assoc-eq, r=nikomatsakis

r? @nikomatsakis 

cc @aturon (I think you were interested in this for some library stuff)

closes #18432
auto merge of #19569 : murphm8/rust/ring_buf_insert, r=Gankro

This is a first pass at insert on RingBuf. I tried to keep it as simple as possible. I'm not sure of the performance implications of doing one copy vs. copying multiple times but moving a smaller amount of memory. I chose to stick with one copy, even if the amount of memory I have to move is larger.

I believe this is part of #18424 

@Gankro mentioned this was missing.
Sketch out an implementation