Add typesafe KeyMod struct to replace using enum as a bitmask.
Merge branch 'DragDrop'