squash! Add RewriteHistoryOptions.OnComplete

Make sure we're able to throw our own error in OnError
squash! Add RewriteHistoryOptions.OnComplete

Seems like OnError should be fired at any point, even if there's nothing
to rollback?