perf($rootScope) - minor changes to reduce scope size

d219a57: If I understand the use of `scope['this']` correctly it can be replaced with a `$parse` keyword and avoid being set per scope instance.

5b426f6: For scopes that don't use listeners (most?) this avoids creating the two JSON objects similar to $$watchers.

abdebc8: This seemed a little confusing before (imo) having the 3 queue objects on every root/isolated scope while only having one instance (per root). The way they were accessed was also a little random - sometimes it was `this.$$queue`, sometimes `$rootScope.$$queue`.  The `$$applyAsyncQueue` was also created per root/isolated scope, only ever accessed on the `$rootScope`, but still had a unique instance per scope which was never used (unlike the other 2 queues which referenced the `$rootScope` queue instance).  The ngBindSpec change was actually a buggy test throwing due to lack of a context.

All three of these just reduce the number of variables/objects initialized per scope which is pretty minor, but scopes are created quite often...

If anyone depends on `scope['this']` outside of parsed expressions or depends on the moved $$ variables then all 3 changes could be considered breaking changes.