feat(form): Add new $submitted state to forms

The $submitted state changes
- to true when the form is submitted
- to false when $setPristine is called on the form

A .ng-submitted class is added to the form when $submitted=true

Closes #8056
fix($parse): one-time binding for literal expressions works as expected

Meaning the watcher is only removed when all the properties of the object, or
all the elements of the array, are defined.

Closes #8209
chore(travis): rename fetch_bundle script and make it not abort a travis build if it fails

This is useful when the npm-bundle-deps server isn't running,
when the tar never gets served (there's a default timeout on the request),
or when the served file isn't a valid tar.
perf(input): prevent additional $digest when input is already touched

@kevinjamesus86 noticed that the input control would trigger a $digest
cycle every time it was blurred, https://github.com/angular/angular.js/commit/adcc5a00bf582d2b291c18e99093bb0854f7217c#commitcomment-7129512.

After the control is in a $touched state, other $digest cycles are
unnecesary.

Closes #8450
fix(select): ensure that at least one option has the `selected` attribute set

Using `prop` to set selected is correct programmatically but accessibility
guidelines suggest that at least on item should have the `selected` attribute
set.

Closes #8366
Closes #8429
feat(ngMock): allow override of when/expect definitions

Closes #5766
Closes #8352
docs($resource): clarify the meaning of `@` in `paramDefaults`

Closes #8457
perf($q): move Deferred and Promise methods to prototypes

NOTE: Deferred doesn't get all the advantages of moving methods to the prototype,
since the constructor binds instance methods to "this" to support unbounded execution.

Closes #8300
docs(form.js): fix ngdoc tags for `$setSubmitted`

See 108a69be17df5884d026c57b2be3235c576250fe

Closes #8464
docs($compile): event handlers are not copied from the replaced node
docs(ngController): global controller fns disabled by default

Update doc to reflect 3f2232b5a181512fac23775b1df4a6ebda67d018,
which disabled use of global controller constructors (by default).

Closes #8466
docs(CHANGELOG.md): add missing breaking change from 1.3.0-beta.14

Closes #8474
docs($compile): fix typo 'default' spelling

Change spelling of 'defualt' to 'default'

Closes #8476
chore: ignore .lvimrc files
docs($resource): fix incorrect comment example for userId

Closes #8507
docs(ngHref): close the <a> tags in examples

Self closing <a> tags in the examples given make no sense because they won't
show up in the browser (and I think aren't even allowed according to HTML specs).
I've seen this confuse people over at stackoverflow.com who tried to copy/paste
those examples.

Closes #8488
docs(guide/controller): remove duplicate -Controller suffix

Closes #8482
docs(guide/concepts): add min to numerical inputs

Closes #8495
docs(guide/directive): explain how to require multiple controllers

Closes #8524
docs(guide/migration): ngSanitize is out ng core at AngularJS 1.2.21

When using ngBindHTML directive, either ngSanitize or $sce must be used
or this will end in a non-trusted value error.

Closes #8519