Two small feature requests

Hi, Thanks for this package.  I have two small feature requests:
  1. A procedural-style in-order traversal: zoom to the minimum element of the tree, and then call `next()` iteratively to traverse the tree in-order. You can stop whenever you'd like (which isn't the case for the existing `forEach`).  Also, unlike the existing `forEach`, the implementation is iterative and not recursive.
  1. Delete an node by its object representation, and not its value.  This is especially useful if you have multiple objects with the same key.  A very small refactor is required for this --- to split `delete` into two small functions, and also the return `newNode` from `insert`.

Test code included for these newfeatures.  Thanks.