Reduce the memory consumption of SourceProvider instances by keeping a reference to the parent object instead of copying all class names to a new object.

Additional Info:
In one service for example:
The maximum chain size is 6.
SourceProvider.get() is called 118032 times
-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=47105142
Switch InternalContext to store dependency/source pairs more compactly.

First, use an ArrayList instead of LinkedList, since it has only 4-8
bytes overhead per entry (depending on resize phase).  Second, remove
the overhead of the DependencyAndSource object, which saves 8 bytes per
object, and materialize only when getDependencyChain() is called.

-------------
Created by MOE: http://code.google.com/p/moe-java
MOE_MIGRATED_REVID=47284141
Clean up some formatting (includes some format artifacts from internal changes), and remove executable bit from several files which do not need them.
Merge remote-tracking branch 'upstream/master'