Better MCV pattern

This solve a bug when classes are added with jQuery after you manually concatened one using className property. 

It also improve separation between model and view.

As an extra, I added the targeted element to the when-drop function, but I may be missing something. For instance, why do you bind "drop" from the drop directive? Seems like its value ($scope.drop) is never used.

-------------------------------------------

+ "on-drag" class added or removed instead of hard-coded opacity for
elements being dragged (opacity moved to css file)

+ jQ-lite addClass and removeClass instead of pure js string
concatenation (makes jQuery addClass break)

+ when-drop function returns the target element as a second optional
parameter