Allow adding/removing desktops by index 

See Bugzilla [5974](https://bugzilla.icculus.org/show_bug.cgi?id=5974)
The commit message describes the functionality added.

**Commit message:**
> 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.

Keys "last" and "current" should work exactly the same as before.