test($compile): fix spelling error in assertion (ngAttr*)

The string 'test2' should be 'test3' as 'test2' has already been
tested with the previous assertion.
chore(bower): update to latest ng-closure-runner

This version does correct URL encoding of string parameters in the
production minErr asset code.
chore(bower): upgrade bower to 1.0.0

We explicitly set the Bower install directory to components/ for
compatibility with our existing code base. Recent Bower prefers
bower_components/.
fix(bower): update bower usage and resources

Changes:
- Fix our old code to use bower_components/ as the install dir
- Fix the Bootstrap asset to use github.com/twbs/bootstrap (it moved)
- Fail the build on Bower failure. Bower should not fail silently.
fix(ngdocs): make jsFiddle and Plunkr links work with external AngularJS modules
chore(ngdocs): fixed jsFiddle/Plunkr examples to include ngAnimate and use a default App the module is not set
fix(ngClass): ensure ngClass doesn't fire addClass or removeClass with an empty string

If ngClass fires off an add- or removeClass whilst the opposite animation is going on then
the animation will be skipped. The default behavior of ngClass was executing remoteClass
with an empty string while addClass had just fired. This commit fixes that bug.
chore(ngdocs): all animation-supported directives working with docs examples and jsFiddle/Plunkr pages
chore(bower): update to bower 1.0.3
docs(error): improve the cacheFactory/iid.ngdoc
chore(bower): write grunt task for running bower
feat(directive): support as instance syntax

Support controller: 'MyController as my' syntax for directives which publishes
the controller instance to the directive scope.

Support controllerAs syntax to define an alias to the controller within the
directive scope.
feat(directive): support as instance syntax

Support controller: 'MyController as my' syntax for directives which publishes
the controller instance to the directive scope.

Support controllerAs syntax to define an alias to the controller within the
directive scope.
fix(isArrayLike) Correctly detect arrayLike items

Change the implementation of isArrayLike to use one heavily based on the
implementation in jQuery in order to correctly detect array-like
objects, that way functionality like ngRepeat works as expected.
docs(header): replace logo.png with logo.svg

The current logo looks awful on high-density displays.  SVG is a
better choice because it can scale to any resolution without
increasing file size.

Amending #2775 to add support for IE 8 by falling back to existing PNG
with img.onerror

Using relative URLs as directed by @btford and @petebacondarwin.

(commit by Brenton Simpson - @appsforartists)

Closes #2874
fix(resource): check whether response matches action.isArray

When using $resource you must setup your actions carefully based on what the server returns.
If the server responds to a request with an array then you must configure the action with
`isArray:true` and vice versa.  The built-in `get` action defaults to `isArray:false` and the
`query` action defaults to `isArray:true`, which is must be changed if the server does not do this.
Before the error message was an exception inside angular.copy, which didn't explain what the
real problem was. Rather than changing the way that angular.copy works, this change ensures that
a better error message is provided to the programmer if they do not set up their resource actions
correctly.

Closes #2255, #1044
fix($q): call `reject()` even if `$exceptionHandler` rethrows

Normally $exceptionHandler doesn't throw an exception.  It is normally
used just for logging and so on.  But if an application developer
implemented a version that did throw an exception then $q would never
have called reject() when converting an exception thrown inside a `then`
handler into a rejected promise.
fix(mock.$log): keep in sync with $log

Closes #2343
fix(jqLite): support space-seperated events in off

Closes #3256
style($sce): remove unreachable return statement