This flag requests that the filled bufinfo give the associated
GC base address, for classes like memoryview & uctypes that need
it in order to ensure liveness of the data they refer to.
I had initially hoped that this would be a forward compatible
change, but the practice of checking `flags == MP_BUFFER_READ`
means it's not, so I might as well make it unconditional. But,
here, it's an intermediate step that passed the tests.
This commit adds a new `RingIO` type which exposes the internal ring-buffer
code for general use in Python programs. It has the stream interface
making it similar to `StringIO` and `BytesIO`, except `RingIO` has a fixed
buffer size and is automatically safe when reads and writes are in
different threads or an IRQ.
This new type is enabled at the "extra features" ROM level.
Signed-off-by: Andrew Leech <andrew.leech@planetinnovation.com.au>