'You may want to commit to a backtrack but don\'t want to force the
stream to keep bookkeeping objects around for a marker that is
no longer necessary.  This will have the same behavior as
rewind() except it releases resources without the backward seek.
This must throw away resources for all markers back to the marker
argument.  So if you\'re nested 5 levels of mark(), and then release(2)
you have to release resources for depths 2..5.'

def release(self, marker=None):

    raise NotImplementedError
