fix(ngScenario): fix error message description
fix(ngRepeat): correctly track elements even when the collection is initially undefined

Previously if the collection model was set to undefined on the first digest,
the repeater would get confused and not use the correct tracking function
for associating model with dom elements in the repeater.

Closes #4145
Closes #3964
docs(ngShowHide): improve clarity

Closes #4099
docs(guide/e2e-testing): Fix typo

Closes #4100
docs($http): fix adding default header to get request example

Initially, `$httpProvider.defaults.headers.get` is `undefined`, so
`$httpProvider.defaults.headers.get['My-Header']='value'` will throw an
error.

Closes #4101
docs(guide/$location): clarify $location service role

Clean up confusing use of the term URL to refer to $location as well as 'URL in the browser'.

Closes #4103
docs(guide/$location): provide a title for section about `replace()`

Closes #4104
docs(jqLite): fix typo

Closes #4105
docs(ngHref): fix formatting and clarify

Closes #4106
docs(guide/services): fix typo

Closes #4112
docs(docs.css): prevent `<code>` elements from wrapping

Closes #4114
chore($parse): convert parser() and lex() to prototype-based code
feat($watch): add $watch(obj, exp, listener) which uses Object.observe
feat($parse): lexer creates a list of identifier paths
feat($watch): compound expression observing
feat($watch): add deep equality logic to $watch
chore($watch): do not use $rootScope in $watch tests
feat($watch): watcher disposal via functions returned by $watch()
chore($watch): extract $WatchProvider.WatchManager
fix($watch): fix one-time listener registration