DragInteraction callbacks for dragstart, drag, and dragend

Working towards #365, and realized I needed this.

This takes care of #630 too.
Hmm, strange. It shows it as spaces.

I have vim set up so that it uses spaces for everything except golang. would be odd if it decided to insert a tab here.