Add a variant of release() that releases all elements in the container.
Fix a bug with decrementing the iterator.

The iterator decrement was incorrectly calculating the position of the
new iterator block. We need to move back the block iterator first, then
subtract the size of the new block from the old position value to come
up with the correct block position after the decrement.