Ensure directive is usable more than once within the same template

Rewrite watchers and reduce scope pollution. The only variable
added to the scope is the Proxy.

Fixes #1.