Watch and Eval ngDrag/ngDrop instead of observing

This allows to toggle enable state with a variable or expression, thus
allowing more flexibility to decide if drag functionality should be
enabled or disabled.

It provides 100% compatibility with old observe method, and all examples still work as expected.