Merge stable-1.0
Ensure `evil-ex-normal` generates a single undo step (re #251)

--HG--
extra : amend_source : 8be56a6a54217b27009e402ba5a7e88e84e9cc7f
Guard `evil-with-single-undo` against recursive calls

A call to `evil-with-single-undo` within the body of another call may
end the outer instance. We guard this with the new variable, so an
inner call does nothing.
Guard `evil-start-undo-step` and `evil-end-undo-step` within single undo

These functions are not only called from `evil-with-single-undo`, but
also when insert state starts and ends.
Merge stable-1.0