fix(date):  invert timezone sign and always display sign

This commit fixes #1261 and #1532. This covers
two separate issues:

- Positive timezones were being formatted without
a leading `+` resulting in a formatting string
like: "HH:MM:ssZ" giving "12:13:141000" instead
of "12:13:14+1000". Fixed by checking if timezone
is > 0 and adding a leading "+".

- Timezone output signs were inverted.
mock.TzDate expects the timezone _offset_ as it's
first argument, _not_ the timezone. This means
that a mock.TzDate with a positive offset should
result in a date string with a negative timezone,
and vice-versa.

Closes #1261, #1532
feat($http): allow overriding the XSRF header and cookie name

Add 'xsrfCookieName' and 'xsrfHeaderName' property to $httpProvider.defaults and
http config object, which give the name of the cookie the XSRF token is found
in, and the name of the header it is sent in, respectively.
This allows interop with servers with built-in XSRF support that use different
names.
The defaults match the current hard-coded values of 'XSRF-TOKEN' and
'X-XSRF-TOKEN'.
feat(dateFilter): add `[.,]sss` formatter for milliseconds

Also Implement getMilliseconds() method of TzDate and
add test for this in ngMock.
fix($cookies): set cookies on Safari&IE when base[href] is undefined

Safari and IE don't like being told to store cookies with path set to
undefined. This change ensures that if base[href] (from which cookie path
is derived) is undefined then the cookie path defaults to ''.

The test verifies that the cookie is set instead of checking that cookie has correct path,
this is due to that cookie meta information is not avabile once the cookie is set.

Closes #1190, #1191
fix($compile): rename $compileNote to compileNode

Directives was observing different instances of Attributes than the one
that interpolation was registered with because we failed to realize
that the compile node and link node were the same (one of them
was a wrapper rather than raw node)

Closes #1941
fix(scenario): include error messages in XML output

Fix the XML output of scenario tests so that it properly includes error
messages from failing specs.
docs($q): fix typos
fix(angular.forEach): correctly iterate over objects with length prop

Should handle JQLite, jQuery, NodeList and other objects like arrays
but not other generic objects or instances of user defined types
with length property.

Closes #1840
refactor(angular.copy): use slice(0) to clone arrays

slice(0) is way faster on most browsers
refactor(angular.copy): use array.length=0 to empty arrays
chore(docs): improve docs parser type

previously we barfed on function type definition with optional arguments
like {function(number=)}

this fixes it

I also added a bunch of code that helps to debug incorrectly parsed docs.
revert: refactor(angular.copy): use slice(0) to clone arrays

This reverts commit 28273b7f1ef52e46d5bc23c41bc7a1492cf23014o.

slice(0) doesn't perform deep copy of the array so its unsuitable
for our purposes.
test(angular.copy): add tests for scenarios when target is missing
chore(matchers): fix hasBeenCalledOnceWith matcher

the error message was wrong and misleading
feat($resource): expose promise based api via $then and $resolved

Expose $then and $resolved properties on resource action return values which
allow checking if a promise has been resolved already as well as registering
listeners at any time of the resource object life-cycle.

This commit replaces unreleased commit f3bff27460afb3be208a05959d5b84233d34b7eb
which exposed unintuitive $q api instead and didn't expose important stuff
like http headers.
docs($resource): fix missing punctuation
chore(Rakefile): parallelize the build on Travis

now that the forking issue is solved we can run regular build there

https://github.com/travis-ci/travis-ci/issues/845
docs(guide): Fix typos in concepts/model,view.
fix(numberFilter): fix formatting when "0" passed as fractionSize

When checking to add decimal and trialing 0s number filter used to check
trueness of fractionSize. "0" evaluating to true causes "123" to return "123."
feat(filter): Add comparison function to filter

Add optional comparator function argument to $filter('filter')(array,
expression, comparator) such that the comparator function is used to
compare the values and predicates.  When true, defaults to equality.
When missing defaults to substring matching.