[emacs] Use markers instead of raw positions to make cleaning work better

Sometimes cleaning a buffer would leave the end of the buffer uncleaned,
because the end position would be moved along the way. This commit makes
the corresponding code use markers instead, which track the changes in
the buffer, and therefore ensure that the entire buffer is acted upon.