Allow adding/removing desktops by index.

    (Bugzilla #5974)

    Add valid key "first" to add/remove desktops. Add functionality to
    add/remove desktops of specific index. For consistency with configuration
    of MoveDesktop, configuration indices in rc.xml are 1-indexed.

    If AddDesktop with index higher than num_desktops, empty desktops are
    appended until that index. If AddDesktop with index between 1 and
    num_desktops-1, empty desktop is inserted between previous desktop
    index-1 and desktop index.

    If RemoveDesktop with index higher than num_desktops, nothing happens. If
    RemoveDesktop with index between 1 and num_desktops-1, that desktop is
    merged up, keeping current windows focused. If RemoveDesktop with index
    num_desktops, last desktop is merged down, keeping current windows
    focused.

    Preserve previous behaviour of keyword "current" - i.e. when the new
    desktop is added in place of the current index, you should be looking at
    the new desktop.