Use circular list to implement dynamic array.
No need to copy data when there is free space. Although we keep 1 slot
open to distinct empty/full of buffer.
Merge pull request #2 from Cofyc/circular_buffer

Use circular list to implement dynamic array.