fix(jqLite): return array from multi select in val()
chore(bower): add a .bowerrc file
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.
docs($interpolate): add example for the provider
chore(.gitignore): ignore npm-debug.log file
fix($compile): don't check attr.specified on non-ie7

the specified attribute is depricated and creates warnings in Firefox

Closes #3231
Closes #2160
docs(guide): remove superfluous });
fix(equals): {} and [] should not be considered equivalent

angular.equals was returning inconsistent values for the comparison between
{} and []:

    angular.equals({}, []) // true
    angular.equals([], {}]) // false

Since these object are not of the same type, they should not be considered
equivalent.
fix(dump): Prevented window.dump from being overridden by karma-jasmine.

In commit 6820322db562382fac903be35831275948825317 of Karma-Jasmine, the
dependency on angular.dump was removed. This caused two undesirable side
effects in the angular.js project. 1) Tests for presence of mock dump were failing,
and 2) the default window.dump was not outputting valuable angular-aware info. This
simple fix adds window.dump in testabilityPatch, to preprocess dumped input prior
to passing it to the global dump method.
fix(grunt): cache version number

caching the version number speeds up the build and preserves resources.

this also fixed EMFILE error that now occurs on some macs.
chore(package.json): fix name to work with latest NPM
style(sanitize): fix typo in variable names
fix(i18n): Do not transform arrays into objects

Do not trasnform arrays into objects when generating the locale objects
Add unit test for this check
refactor(core): use native String.prototype.trim if available
fix(ngCloak): hide element even when CSS 'display' is set

Previously an element like
<div class="foo ng-cloak">...</div>
would still be annoyingly visible if it matched a CSS rule like
.foo { display: inline-block; }, overriding ng-cloak's display: none.
fix($location): default to / for the url base if no base[href]

With the recent refactoring of $location service we changed this behavior
resulting in a regression.

Previously we thought that html5 mode always required base[href]
to be set in order for urls to resolve properly. It turns out that
base[href] is problematic because it makes anchor urls (#foo) to
always resolve to the base url, which is almost always incorrect
and results in all anchors links and other anchor urls (e.g. svg
references) to be broken.

For this reason, we should now start recommending that people just
deploy to root context (/) and not set the base[href] when using
the html5 mode (push/pop history state).

If it's impossible to deploy to the root context then either all
urls in the app must be absolute or base[href] must be set with the
caveat that anchor urls in such app won't work.

Closes #2762
fix($parse): move global getter out of parse.js
test(matchers): update toThrow matcher
docs(guide/unit-testing): add expression example

* Improved developer guide, directive unit testing documentation code with scope expression
* Removed documentation block with nothing on it
docs(input): add missing ngChange directive for email type

All other input types already have it.