event_list::select_none now returns boolean which indicates if any events were deselected (optimization).
Grid::select_none() now optimized for case when there is nothing selected.
Pattern user interface logic changed:
Replaced Canvas::_selection_mode and _move_mode with combined _event_state and enum.
Removed Canvas::adj_color() as it was not being used and was poorly named (was for setting velocity).
Added DRAG_THRESHOLD constant to canvas.C which sets threshold in pixels for ALT drag note operations.
Got rid of ghost_note since note operations now occur in realtime.

Overhauled logic in Canvas::handle():
Changed to state machine using _event_state.
Left click and drag to add notes and position them (time and note).
Alt-Left Click drag vertical/horizontal on a note to change note velocity/duration after DRAG_THRESHOLD is exceeded.
Alt-Left Click on a note without exceeding threshold deletes it.
Ctrl-Left Click drag for region select.
Holding down shift adds to selection upon button release.
Keyboard events are now ignored if a mouse operation is in progress (to simplify potential operation conflicts).
Got rid of delete_note.
Code formatting.