perf: speed up shallowCopy and special case Attributes cloning

`for in` is much faster than `Object.keys()` but `for in` includes properties from the prototype.

http://jsperf.com/for-in-vs-object-keys2

All the uses of shallowCopy don't deal with objects with heavy prototypes, except for Attributes instances
in $compile.

For this reason it's better to special-case Attributes constructor and make it do it's own shallow copy.
This cleans up the Attribute/$compile code as well.
refactor: remove unused variables
perf($compile): delay object initialization in nodeLinkFn
style(ngRepeat): fix indentation
fix($parse): remove unused variable declaration in generated getters
style($parse): rename variables in generated code so that code is more readable
perf($parse): trim expression only if string
refactor($parse): simplify addInterceptor fn
refactor(Scope): rename $$childScopeClass to ChildClass to simplify debugging/profiling
refactor(Scope): remove useless compileToFn helper fn
refactor(jqLite): clean up jqLiteRemoveData fn
style(jqLite): rename onFn to jqLiteOn