Massive code cleanup, part 1.
Massive code cleanup, part 2.
- Unify the MoveMenuItem/DeviceMoved methods
- Recognize that the MasterDevice and SlaveDevice objects aren't going to
  change, eliminate some dead code there.
Massive code cleanup, part 3.
- Moved a bunch of code from the MainColumn class to the DeviceTree class,
  where it makes more sense.
- Move toward more use of device rather than menuitem objects.
Add some extra confirmation dialogs.