rpc v2: `submitAndWatch` replace old messages if it's lagging (#4901)
Close https://github.com/paritytech/polkadot-sdk/issues/3076 The fix is really just that older messages are replaced if the client can't keep up with the server instead. Because I wanted the same functionality as `pipe_from_stream` for both pending/subscription I added two wrapper types on-top of the types from jsonrpsee to make it nicer. I added a trait `Buffer` so I could still use pipe_from_stream but that abstraction is a little leaky but only to avoid adding an identical method/function with another strategy...