Change IOContext to be sub-classable (remove 'final')
Refactor BufferRecycler for sub-classing