add fuzz test

sometimes it still fails, haven't figured out why
make defrag version that normalizes del/insert sequences
Fix commutation by normalizing defrag

add test for fwd/rev equivalance to commutation unit tests.
Normalize del/ins seqs in tests, and use normal_defrag to match them
more commutation fuzz tests

also use error return code in fuzz test
Inversion, and related refactoring

Refactor yield function in apply so it can be used for
inversion as well. Implement inversion. Basic tests for
inversion. We need more.
fuzz tests for inversion

no changes to code required. yes! increase
all iterations.