tree: iterative collapse avoids extensive stack usage
tree: iterative collapse avoids extensive stack usage

Callback and user data would bounce on the stack like a pogo stick,
so we'll just get rid of the overhead. Also, only the default empty
will clear the left/right pointers of struct peak_tree. Any other
free will most likely eat up the memory and we can leave the struct
untouched.

fichtner/libpeak,fichtner/libpeak,fichtner/libpeak,fichtner/libpeak,fichtner/libpeak