SC.Drag refactor

SC.Drag now fire dragEnded when cancelling a drag and drop operation using the escape key: https://github.com/sproutcore/sproutcore/issues/513

Also fix a possible memory leak with the _cachedDropTargets property.