Separate selection operations into their own temporary history

Separate selection operations into their own temporary history mechanism.
    The user can now replay *all* earlier selection operations until the next
    session undo/redo command, or the completion of a new operation.
    Nothing relating to selection ops is stored, and selection operation history
    is begun on first idle.
    
    Selection operation history is fundamentally different from the history of
    operations which act on a selection in terms of both their viewport and the
    amount of information required to replay them.
    WRT undo, the user of a selection op doesn't care about the viewport state
    at the beginning of an op, but rather that at the end of the previous one.