feat($compile): add support for ng-attr with camelCased attributes

SVG attributes are case sensitive and some have upper case letters in them
This change ensures that we can identify these, when being used with the `ng-attr`
directive, by encoding upper case letters with a preceding underscore.

For example to apply `ng-attr` to the `viewBox` attribute we could write
`ng-attr-view_box` - or any of the other variants: `ng:attr:view_box`,
`data-ng-attr-view_box`, etc.

Closes #9845
Closes #10194
docs(guide/Expressions): fix grammar, flow and punctuation

Closes #10384
docs($resource): fix typo

Closes #10383
refactor($http): drop superfluous argument to sendReq

Closes #10360
refactor($http): avoid using closure vars in serverRequest fn

Closes #10361
fix(orderBy): do not try to call valueOf/toString on `null`

8bfeddb5d671017f4a21b8b46334ac816710b143 added changes to make relational operator work as it
normally would in JS --- unfortunately, this broke due to my failure to account for typeof null
being "object".

This refactoring attempts to convert object values to primitives still, in a fashion similar to
the SortCompare (and subsequently the ToString() algorithm) from ES, in order to account for `null`
and also simplify code to some degree.

BREAKING CHANGE:

Previously, if either value being compared in the orderBy comparator was null or undefined, the
order would not change. Now, this order behaves more like Array.prototype.sort, which by default
pushes `null` behind objects, due to `n` occurring after `[` (the first characters of their
stringified forms) in ASCII / Unicode. If `toString` is customized, or does not exist, the
behaviour is undefined.

Closes #10385
Closes #10386
style(testability): throw a more informative error when getting testability

The angular.getTestability method requires an element parameter to determine
which Angular application to use. Currently, if the element provided is
undefined or outside of an Angular app, the error message is 'cannot read
property get of undefined'. Improving to a more relevant error message.
chore(bower/unpublish.sh): add angular-messages and angular-aria

The unpublish script was not set to unpublish those packages

Closes #10379
docs(guide/Animations): fix punctuation

Closes #10398
docs(CHANGELOG.md): better group changes in 1.3.6

Closes #10392
fix($http): don't convert FormData objects to JSON

This won't enable FormData uploads in itself, as the Content-Type is automatically set to application/json.

Closes #10373
refactor($http): avoid re-creating execHeaders function

The execHeaders function was being re-defined inside mergeHeaders
function. Additionally it was mutating its arguments.

Closes #10359
chore($$raf) remove moz prefix for requestAnimationFrame

This drops support for Firefox 22 and older.

The moz-prefix is still supported, but there is an effort to drop it eventually:
https://bugzilla.mozilla.org/show_bug.cgi?id=909154

Closes #9577
chore(travis): run the build twice (BS and SL)

Temporarily run the each job twice:
- using BrowserStack
- using SauceLabs
docs(guide/Forms): added link to input type "date"

Closes #10415