Implement CM Drag & Drop

Implements https://trello.com/c/io24Byhm/910-drag-and-drop-to-move-selected-text-within-editor.
Adds a new pref `dragDrop` (which defaults to true)
Is there a particular reason why we have an array to define the dependency here?  Just to be consistent, this should move to this section https://github.com/adobe/brackets/blob/master/src/brackets.js#L49