chore(release): improve the release script
chore(release): cut v1.2.6 release
chore(release): start v1.2.7
chore(release): add codename for 1.2.7
docs(guide): fix typo

Closes #5481
chore(release): update cdn version
style($http): fix a semi-colon
docs(guide/forms): code style changes for an example

Closes #5499
docs(guide/forms): update example

Right now, non-integers such as 'aawefwae' are valid.
This ensures that only integers are valid. Hopefully that makes the example more powerful.

Closes #5501
chore: update Karma and SauceLabs launcher

This should improve stability as it contains capture timeout (if a browser does not capture in a given timeout it gets killed) and retry (if a browser fails to start, Karma will try n times before failing).
fix($sanitize): consider `size` attribute as valid/allowed attribute

The "size" attribute gets set on <font> elements when using HTML5 rich
text editors, or elements with the contenteditable attribute, that rely
on the 'fontSize' command (execCommand).

Closes #5522
fix(ngRoute): instantiate controller when template is empty

Before this change, $route controllers are not instantiated if the template is falsy, which includes
the empty string. This change tests if the template is not undefined, rather than just falsy, in
order to ensure that templates are instantiated even when the template is empty, which people may
have some reason to do.

This "bug" was reported in http://robb.weblaws.org/2013/06/21/angularjs-vs-emberjs/, as a "gotcha"
for AngularJS / ngRoute.

Closes #5550
perf(Scope): limit propagation of $broadcast to scopes that have listeners for the event

Update $on and $destroy to maintain a count of event keys registered for each scope and its children.
$broadcast will not descend past a node that has a count of 0/undefined for the $broadcasted event key.

Closes #5341
Closes #5371
fix($location): re-assign history after BFCache back on Android browser

Closes #5425
fix(input): prevent double $digest when using jQuery trigger.

If an event was performed natively, jQuery sets the isTrigger property.
When triggering event manually, the field is not present. Manually
triggered events are performed synchronously which causes the "$digest
already in progress" error.

Closes #5293
chore(release.sh): push both the release commit and tag
fix(input): use apply on change event only when one isn't already in progress

Closes #5293
fix($injector): remove INSTANTIATING entry when done

getService flags services as INSTANTIATING while it calls their
provider factory, in order to detect circular dependencies. If
the service is instantiated correctly, the INSTANTIATING flag is
overwritten with the actual service. However, if the service is
not instantiated correctly, the INSTANTIATING flag should still
be removed, or all further requests for this service will be
mis-detected as a circular dependency.

Closes #4361
Closes #5577
test(injector): add missing test for #5577

Add a missing test for fix that was merged via #5577
test(compileSpec): fix broken build on FF

FF 26.0 now throws:

"TypeError: NodeList doesn't have an indexed property setter."

when we try to assign to `childNodes[1]`, since this test still works properly
on Chrome and the issue being tested is not a cross-browser issues, I'm
just making the patchability check more robust instead of trying to figure
out how to make this test fully pass on FF.