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.
chore(reakefile): auto install npm packages
fix(compiler): Allow startingTag method to handle text / comment nodes
fix(resource): Update RegExp to allow urlParams with out leading slash

Will allow reoucese to be loaded from a relative path
Example:
var R = $resource(':path');
R.get({ path : 'data.json' });

Example usage:
Load resources in applications not using webserver, ie local webapp in 
on a tablet.
feat(noConflict): restore previous angular namespace reference
fix($rootScope): minor typo fixes
docs($parse): document function argument types, fix minor typo
feat($parse): added `constant` and `literal` properties

* `literal` is set to true if the expression's top-level is a JavaScript
  literal (number, string, boolean, null/undefined, array, object), even
  if it contains non-literals inside.

* `constant` is set to true if the expression is known to be made
  entirely of constant values, i.e., evaluating it will always yield the
  same result.

A consequence is that a JSON expression is guaranteed to be both literal
and constant.
feat(scope): only evaluate constant $watch expressions once
fix($resource): params should expand array values properly

Today, calling e.g. var R = $resource('/Path/:a'); R.get({a: 'foo', bar: ['baz1', 'baz2']}); results in a query
string like "/Path/doh?bar=baz1,baz2" which is undesirable. This commit enhances resource to use
$http to encode any non-url parameters resulting in a query string like "/Path/doh?bar=baz1&bar=baz2".

BREAKING CHANGE: if the server relied on the buggy behavior then either the
backend should be fixed or a simple serialization of the array should be done
on the client before calling the resource service.
fix($http): do not encode special characters `@$:,` in params

encodeURIComponent is too aggressive and doesn't follow http://www.ietf.org/rfc/rfc3986.txt
with regards to the character set (pchar) allowed in path segments so we need
this test to make sure that we don't over-encode the params and break stuff
like buzz api which uses @self.

This is has already been fixed in `$resource`. This commit fixes it in a same way
for `$http` as well.

BREAKING CHANGE: $http does follow RFC3986 and does not encode special characters
like `$@,:` in params. If your application needs to encode these characters, encode
them manually, before sending the request.
docs(guide): fix some invalid javascript in directive documentation

Use double quotes to maintain consistency with other HTML