Added tests
Supports promises

Fixed a bug that caused the directive to update the model just once, if
the model was a promise.
Now, it keeps watching until the promise is resolved.