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
fix(ngSubmit): expose $event to ngSubmit callback
fix(sanitize): match URI schemes case-insensitively

According to RFC 3986 (http://tools.ietf.org/html/rfc3986#section-3.1)
schemes such as http or mailto are case-insensitive. So links such as
http://server/ and HTTP://server/ are valid and equivalent.

Closes #3210
fix(ngScenario): select().option(val) should prefer exact value match

With select(...).option(val) it previously would select the first node
which contains the value, even if an exact match was available.
This fix prefers exact matches if available, otherwise it reverts
to the previous 'contains' behaviour for backwards compatibility.

Closes #2856
feat($resource): support an unescaped URL port

The colon character is used to identify parameters in $resource.
This meant that we had to escape the colon used in a port.
It turns out that this is not necessary if we assume that parameter
names cannot consist of only digits.
If the parameter consists only of numbers, then it's a port.

Closes #2778
style(ngdocs): fix minor CSS issues