Drag performance optimizations

- No longer finding all the item handles from addItems() and adding mouse events to them. Instead, adding mouse events to the full items, and checking if the event's target was the handle when it happens.
- Drag::appendDraggee() now requires the caller to be more careful that none of the new items aren't already part of the draggee
oldDraggeeIndex and newDraggeeIndex
Merge remote-tracking branch 'origin/master' into craft2.3
Garnish.copyInputValues()
Drag copyDraggeeInputValuesToHelper setting
eq(), first(), last()
Not all items are created equal
Conditional cleanup
singleHelper drag setting
If a secondary item was the target, reposition immediately
Cleaner
Fixed a bug when dragging multiple elements
Prioritize Y axis distance when finding the closest item
disable() and enable()
_onX() => _handleX()
_splitEvents()
Fixed event handling
Better param mapping
Garnish.Modal show, hide, fadeIn, fadeOut events
Remove the modal container from the DOM when a modal is destroyed