fix(Scope): aggressively clean up scope on $destroy to minimize leaks

Due to a known V8 memory leak[1] we need to perform extra cleanup to make it easier
for GC to collect this scope object.

The theory is that the V8 leaks are due to inline caches which are caches
built on the fly to speed up property access for javascript objects.

By cleaning the scope object and removing all properties, we clean up ICs
as well and so no leaks occur.

I was able to manually verify that this fixes the problem for the following
example app: http://plnkr.co/edit/FrSw6SCEVODk02Ljo8se?p=preview

Given the nature of the problem I'm not 100% sure that this will work around
the V8 problem in scenarios common for Angular apps, but I guess it's better
than nothing.

[1] V8 bug: https://code.google.com/p/v8/issues/detail?id=2073

Closes #6794
Closes #6856
fix($animate): prevent cancellation timestamp from being too far in the future

Closes #6748
chore($animate): fix broken IE8 test
chore(CHANGELOG.md): add changelog for 1.3.0-beta.4
chore(build): make version-info.js run on windows

Replaced grep with match
Windows operating systems do not have grep by default

Closes #6912.
docs(guide/bootstrap): add note about ngApp and manual bootstrap
chore(grunt): add jscs task to test task

It is too easy to forget to check jscs for things like trailing whitespace
before pushing commits, such as simple doc changes.  This then breaks the
build and is messy.  Adding jscs to the test task gives people a slightly
better chance of catching these before pushing.
docs(css): ensure all type-hints have a background color

If the type of a type-hint was not recognized, say a "Promise", then
the background color was left as white.  Given that the default
foreground color is also white, this meant that such type-hints were
invisible.

Closes #6934
docs(tutorial): update to match changes to phonecat
revert: fix(Scope): aggressively clean up scope on $destroy to minimize leaks

This reverts commit f552f25171390e726ad7246ed18b994970bcf764.

The commit is causing regressions.

Closes #6897
docs($location): fix link to Developer Guide for "Using $location"

Closes #6946
docs(tutorial): update tutorial steps to discuss protractor

Closes #6940
fix($parse): mark constant unary minus expressions as constant

Previously, constant numbers with a unary minus sign were not treated as constants. This fix corrects
this behaviour, and may provide a small performance boost for certain applications, due to constant
watches being automatically unregistered after their first listener call.

Closes #6932
docs(guide): fix link in "Complementary libraries" section

the link to `angular-translate` is outdated. this commit fixes it.
refactor(jqLite): make HTML-parsing constructor more robust

Previously, the jqLite constructor was limited and would be unable to circumvent many of the HTML5
spec's "allowed content" policies for various nodes. This led to complicated and gross hacks around
this in the HTML compiler.

This change refactors these hacks by simplifying them, and placing them in jqLite rather than in
$compile, in order to better support these things, and simplify code.

While the new jqLite constructor is still not even close to as robust as jQuery, it should be more
than suitable enough for the needs of the framework, while adding minimal code.

Closes #6941
Closes #6958
test($compile): add tests for <option> or <optgroup> tags as root template nodes
docs(ngForm): clarify the purpose of ngForm

Related to #6704 and #2513.
docs(guide/bootstrap): remove extra call to angular.module()

There was an extra call to angular.module() not being used in 'getter' mode. While this doesn't
break the demo app, it does look kind of weird, so lets toss it.

Closes #6969
docs(tutorial): remove reference to old webserver script

script/web-server.js is not present anymore. This doc might be referencing a previous version of the
code. Currently the only way to start the server seems to be using "npm start".

Closes #6966
chore(rootScopeSpec): fix a typo in spec description