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
feat($parse): allow strict equality in angular expressions

Allows the parser to parse strict equality and inequality
in angular expressions.

Closes #908
docs(exceptionHandler): document testing

Update src/ng/exceptionHandler.js

Here's an iniitla attempt at documenting how one might write a
test using $exceptionHandlerProvider. The key take-away is the use
of this pattern:

it(...

 module(...
   $exceptionHandlerProvider.mode('log');
 });

 inject(...
 );

});
feat(ngResource): support all $http.config actions

This allows the transformation of the $http request in both directions,
headers, caching, and timeout.
fix(git-validator): support fixup and better errors
fix(ngSwitch): don't leak when destroyed while not attached

The leak can occur when ngSwich is used inside ngRepeat or any other
directive which is destroyed while its transcluded content (which
includes ngSwitch) is not attached to the DOM.

Refactor ngSwitch to use controller instead of storing data on compile
node. This means that we don't need to clean up the jq data cache.
Controller reference is released when the linking fn is released.

Closes #1621
fix(ngResource): correct leading slash removal.

Fixed an issues with ngResource param substitution where it was incorrectly removing leading slash when param was followed by a non-slash character.
Ex:
'/:foo/:bar.baz/:aux'

params = {
  foo: 'aaa',
  bar: undefined,
  aux: undefined
}

The above params were incorrectly producing '/aaa.baz' but now it results in '/aaa/.baz'.