chore(docs): regroup version selector options into major branches and latest

Before this change we grouped by the  discontinued stable/unstable distinction.

Closes #10053
revert: fix(input): always pass in the model value to `ctrl.$isEmpty`

This commit tried to create consistency by ensuring that `$isEmpty` is not
called on both model and view values but it chose to only use `$modelValue`,
which is not actually correct.

`$isEmpty` is designed to compute whether the `$viewValue` is empty. In
practice this is the only part of the parse/format system that the
directive has control over. We can't rely on the `$modelValue` being in
any particular format since other directives can add in their own formatters
and parsers to completely change this.

(reverted from commit 3e51b84bc19f7e6acc61cb536ddcdbfed307c831)
fix(input[date]): do not use `$isEmpty` to check the model validity
fix(input): set ngTrueValue on required checkbox

Fixes #5164
docs(NgModelController): clarify the value parameter for $isEmpty
fix(linky): encode double quotes when serializing email addresses

Email addresses can (under certain restrictions) include double quote
characters. See http://tools.ietf.org/html/rfc3696#section-3.

For example, `"Jo Bloggs"@abc.com` is a valid email address.

When serializing emails to the `href` attribute of an anchor element,
we must HTML encode these double quote characters. See
http://www.w3.org/TR/html-markup/syntax.html#syntax-attr-double-quoted

This commit does not attempt to improve the functionality (i.e. regex)
that attempts to identify email addresses in a general string.

Closes #8945
Closes #8964
Closes #5946
Closes #10090
Closes #9256
perf(*): use Object.create instead of creating temporary constructors

Closes #10058
fix(Angular): properly get node name for svg element wrapper

Fixes #10078
Closes #10172
docs(CHANGELOG): add v1.3.4 changes
test($httpBackend): use browser.defer mock instead of fakeTimeout
fix($httpBackend): allow canceling request with falsy timeoutId

httpBackend with ngMock browser.defer could never cancel the first deferredFn
because the timeoutId returned by defer for the first fn is a zero value.
Compare timeoutId with undefined fix this issue.

Closes #10177
docs($compile): fix grammar

Closes #10204
docs(CHANGELOG): remove * component

Closes #10222
docs(ngRoute): clarify JSDoc for caseInsensitiveMatch

Closes #10220
fix(ngMock): respond did not always take a statusText argument

minor fix so that `respond` can take a `statusText` argument
even when having status 200 by default

Closes #8270
fix(linky): encode all double quotes when serializing email addresses

When encoding a URL or an email address, then escape all double quotes

Closes #10090
style(*): IE is a real browser, and chakra is pretty solid

- IE9+ do not have issues with Function.prototype.bind() on builtin fns (asked Brian Terlson)
  (NOTE: there may still be corner cases where builtins will not have `bind()` --- this may
  need to be reverted on complaint).
- HTMLScriptElement#text is an IDL-spec'd attribute, and we use it in all cases --- so the
  comment was sort of nonsense.
- The value of `msie` does not depend on whether the user is using a "real" browser or not.

Closes #10242
style(*): IE9 does still have issues with apply on some native functions

This partially reverts 8f05ca555285da6e58e50dfe751426d999b0f28e

Related to #10242
docs($compile): fix grammar

Closes #10231
docs(guide): fix typo

Closes #10245