Added `pretraverse` and `pretraverseM`.  Fixes #23