Move drag and drop related lines to DragDropController

The CL creates new DragDropController class where we can get together
everything related with drag and drop, and moves the following methods
to DragDropController.

  * WindowManagerService#preapreDragSurface
  * WindowManagerService.H#handleMessage for DRAG_START_TIMEOUT,
    DRAG_END_TIMEOUT, and TEAR_DOWN_DRAG_AND_DROP_INPUT
  * Session#preapreDrag
  * Session#performDrag
  * Session#reportDropResult
  * Session#cancelDragAndDrop
  * Session#dragRecipientEntered
  * Session#dragRecipientExited

Note that the CL does not remove the binder interface methods in
Session e.g. Session#prepareDrag. These methods start delegating drag
and drop work to DragDropController.

Bug: 65564090
Test: Manually drag and drop files between apps, CTS CrossAppDragAndDropTests
Change-Id: I50f6f022f2ecd0ab160b5187ae39f0f533f05969
3 files changed