refactor(Angular.js): remove code duplication

Closes #2890
style(sanitize): fix typo in variable names
fix(scope): watches can be safely unregistered inside watch handlers

Closes #2915
feat(ngDocs): add links to source for API

 - add tests
 - the link points to the gruntUtil.getVersion().number tree on github
fix(ngValue): made ngValue to write value attribute to element
feat(ngSubmit): exposes $event to ng-submit callback