Added a reset macro to allow the buffer to be reused

... without (re)allocs until the old capacity is exceeded.

Typically this is useful when you have some approximate upper limit of items. The buffer grows to a point where no more allocs are required (e.g. holding data generated during each frame of a game).