Added support for async loading of data
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.
Removed unnecessary array conversion
Improved tests and array conversion
Added extra check in $watch(available)
Added extra check for scope.model in watch
Better check of both model and available

Why can those variables be undefined so often that the check is
necessary?
Code cleanup, updated README, new min.js