Deal with the case where we record a macro that contains both a completion *and* a repeat-last-change which must repeat that completion. Need to ensure that:
a) If we're repeating last change (while replaying a macro), we get our next macro completions from the *last change* set of stored completions, rather than the *macro* set; and
b) The set of last change completions is kept up to date, even when we're replaying a macro (so e.g. we replay our macro which enters insert mode, executes a stored completion, which we pull from the stored *macro* completions, and then we have to feed this completion that we just pulled *back* through logCompletionEvent so that it can be used when we repeat the last change).
More confusing that I'd like it to be, but I don't think there's a way of making it simpler :/