Simplified Drag and Drop

Re-wrote the logic for the drag and drop directive to perform better and
make better use of Angular idioms.