Refactor mode hierarchy

Apply a few simplifications and improvements to the mode class hierarchy
that have been pending for a while:

* Use ALL_CAPS for "const"s,
* Split concrete mode classes out of the base class module,
* Rename gui.canvasevent -> gui.mode.
* Registry: build list of registered mode classes to simplify refactoring.
* Remove spring-loaded mixin
  - All concrete spring-loaded mode classes were also DragModes and vv.
  - Push the behaviour down into the DragMode class
* All oneshot modes are drags, merge mixin into OneshotDragMode