Normalize ASTs prior to mutation

This avoids situartions where the source contains (begin, other)
nodes that get mutated to (other) where there is no difference in the
source.

Closes #198