Add visible highlight of expanded section
Tweak visible highlight

- make the background face (hopefully) work well with both light and dark themes

- tweak gensym faces to work better with background face

- use `equal' instead of `=' to handle no newline at end of buffer
Try to be smarter about maintaining buffer state

- save and restore buffer-read-only

- exit macrostep-mode correctly if the buffer is made writable again

- save and restore buffer-undo-list, and disable undo recording while
  macrostep is active

- use `with-silent-modifications' to not mark buffer as modified.
  Caveats: This is nicer for the user when inspecting an unmodified
  buffer, but could be dangerous if we somehow manage leave the buffer
  in an inconsistent state without warning. Is there a better way?