Buffer implementation

This is a simple buffer implementation. By default it behaves as a CString, although it can automatically grow if needed.
It can also be used as a byte array, in which case '\0' is ignored.
ListMutableIterator

ListMutableIterator is an iterator that allows the list to be
modified while traversing the list. Each list can only have
one such iterator at any given time. It is not ready yet,
it lacks prepend, append and unit tests.

ReviewedBy:
Adding ListMutableIterator

A mutable iterator is an iterator that can be used to modify the list.
Each list can have at most one mutable iterator. Mutable iterators
can be used together with the Prepend, Append and Remove functions
from List, although mixing removal from the list with removal from
the iterator might lead to unexpected results. This is because the
list might delete the node pointed by the iterator, and therefore
the iterator will be moved to a different element (either the next
or previous element), if that is not possible then iterator will be
invalidated.
Merge pull request #292 from cduclos/master

ListMutableIterator && Buffer