New BufferList

BufferList is a specialized implementation of a linked list to be used
with Buffer structures.

It uses List underneath, BufferList is just a wrapper for List.

Other commits included on this commit:
- Small fixes to List: All these problems were discovered when developing BufferList.
- Several small fixes to Buffer: Small fixes to Buffer, these problems were fixed while developing BufferList.
- Several fixes to RefCount: All these problems were discovered and fixed while developing BufferList