Factor out some common code in hotkeys_module_editor.cpp
Modify GetCenter and Rotate functions in DRAWSEGMENT to act according to the type of the edge
Add duplicate and exact move tools to modedit

These are accessible via the context menu, and via hotkeys
Get move exact working in the GAL modes too
Increment pad numbers when duplicating. Move pad number incrementing into the D_PAD and MODULE classes
Tweaks to the duplicate and move-exact tools
Add an 'undo inhibit counter' to allow tools to declare an atomic operation. Use this to prevent a duplication registering two undos: one duplicate and one move
Also use undo inhibition to prevent multiple undo points when dragging in EDIT_TOOL