Change SoftAEStream to use a RingBuffer

This PR changes SoftAEStream to use a ring buffer instead of a flat buffer for the input buffer, this should improve performance as it avoids additional memmoves. Needs some profiling and testing to confirm on lower performance systems.