An AngularJS directive to handle the dragging of an $element for mouse and touch devices