Only enter macrostep-mode after successful macro expansion

This prevents a confusing situation where an error occurs in macro
expansion, leaving the buffer read-only and in macrostep-mode.

Also use `inhibit-read-only' instead of let-binding
`buffer-read-only'.
Remove incorrect use of :version in defgroup