fix($compile): safely create transclude comment nodes

Closes #1740
fix($route): support route params not separated with slashes.

Commit 773ac4a broke support for route parameters that are not seperated
from other route parts by slashes, which this change fixes. It also adds
some documentation about path parameters to the when() method and
escapes all regular expression special characters in the URL, not just
some.
docs(CHANGELOG): fix typo
fix(scenario): don't trigger input events on IE9

input.enter() should trigger 'change' rather than 'input' event on IE9 because
input events on IE9 are broken and angular doesn't rely on them
chore(Rakefile): generate version.json

Changes 'rake version' to output a version.json file which
contains the structured version info which can be used in other tools.
chore(Rakefile): remove a duplicate file in angularFiles.js
fix(ngRepeat): correctly apply $last if repeating over object

If the $last property is calculated from the original collectionLength
on an object and properties starting with $ were filtered out, then $last
is never applied and $middle is applied erroniously.

Closes #1789
fix($compile): do not wrap empty root text nodes in spans

Closes #1059
chore(docs): use done() instead of end() in gen-docs.js
chore(Rakefile): force 32bit JVM mode only when java supports it

Some Java installs don't have '-d32' flag (e.g. OpenJDK which is standard
for some Linux systems), and the closure_compile fails because of forcing
that flag. Test, and only run in faster 32bit mode if supported, or
else just run with no flag (default mode).
docs(guide): minor grammar fixes
feat($log): add $log.debug()

New debug() method with suppressable output via
$logProvider.debugEnabled()

Closes #1592
docs: recommend using Google CDN
fix(angular.equals): consistently compare undefined object props

previously:

a = {};
b = {x:undefined};
angular.equals(a, b) == angular.equals(b, a) // returns false.

both should return false because these objects are not equal.

unlike in implemented in #1695 the comparison should be stricter
and return false not true. if we need to relax this in the future
we can always do so.

Closes #1648
doc(guide): Fix examples of $location.html5mode
doc(guide): Fixed typos at the unit tests guide
docs(ngMock.$httpBackend): fix variable declaration
docs(guide): change prototype methods to scope methods in DI examples

As explained in 'Understanding the Controller Component', Controllers
written for new (post 1.0 RC) versions of Angular need to add methods to
the scope directly, not the function's prototype. Correcting this
example should remove any ambiguity, especially for beginners.
docs(cookbook): change prototype methods to scope methods in Buzz

As explained in 'Understanding the Controller Component', Controllers
written for new (post 1.0 RC) versions of Angular need to add methods to
the scope directly, not the function's prototype. Correcting this
example should remove any ambiguity, especially for beginners.
docs(rootScope): correct code examples