feat(Angular.js): skip JSON.stringify for undefined

Return early in `angular.toJson` if the object to be stringified is `undefined`.
IE8 stringifies `undefined` to `'undefined'` whereas other browsers return
`undefined`. This normalizes behavior and passes currently broken unit tests
in IE8.
fix(angular.equals): add support for regular expressions

Regular expression objects didn't used to be considered to be equal when using
'angular.equals'. Dirty checking therefore failed to recognize a
property modification.

Closes #2685

Conflicts:

	test/AngularSpec.js
style(ngMock): add missing whitespace
docs(di): promote registering controllers on modules
chore(ngdocs): remove autofocus for the filtering search
chore(gitignore): add libpeerconnection.log

Google chrome (when tested using karma) spits out a log file called libpeerconnection.log
test(utils): Adds a missing test for snake_case
docs(dateFilter): fix typos

Fix closing parenthesis, quotes around string literal and remove
trailing whitespace.

Closes #3250
docs($templateCache): add examples of usage
chore(ngdocs): fix improve button overlap
docs(jqLite): document "$destroy" event
docs($window): improve style and clarify wording
docs(ngController): remove obsolete mention of scope as `this` in controller

Controllers are now (since angular 1.0) instantiated as regular constructorsand the scope
is injectable as $scope rather than being referenced as `this` in controller methods.
docs(input): fix example

The input [number] error spans did not show on the example, as they were
relying on an non-existing property (myForm.list.$error) vs the working
property (myForm.input.$error)
fix($compile): always instantiate controllers in parent->child order

Previously it was possible to get into a situation where child controller
was being instantiated before parent which resulted in an error.

Closes #2738
chore(dump): remove dead code

This code is not being used any more and the test is now failing
due to Karma changes. Karma used to expose window.dump but that
changed recently and that's why our build is now failing.

I'm removing the code and test, but we still need to figure out
how to route window.dump through angular.mock.dump, but that will
have to be a separate commit.
docs(index): add seed app link to menu item
docs(cacheFactory): correct typos
docs(bootstrap): Note that ngScenario requires ngApp

ngScenario expects an ngApp directive to be used, and doesn't work for
manually bootstrapped apps. The failure mode is to hang on navigation.

Trying to make this wont-fix bug less obscure by documenting it.
Eventually Protractor will replace ngScenario and fix this.
fix($location): prevent infinite digest error due to IE bug

If an app uses HTML5 mode and we open an html5 url on IE8 or 9 which
don't support location href, we use location.replace to reload the page
with the hashbang equivalent of the url but this fails with infinite
digest. This is because location.replace doesn't update location.href
synchronously on IE8 and 9.

Closes #2802, #3305, #1417