ResolvedArtifact no longer keeps hard reference to the ResolvedDependency. Needed for serialisation/deserialisation of the old graph. This change adds another hash map (may increase memory footprint) but when we finish all work the footprint should be much better.
Added serializer for ResolvedConfigurationIdentifier
Added an integ test that shows the order in which artifact files are preserved in a configuration. We want to avoid changing this order because it influences the classpaths.
Shorcircuit getting the files from a configuration.

1. Typically, we want all files from a configuration. Rarely, we want only files that belong to specific kind of a first level dependency (IDE plugins do that). So, for the typical case I'm just returning all artifacts/files, without traversing the resolved dependencies graph.
2. This is critical for improving the memory footprint of the resolved configuration. In the next few commits, Gradle will stop maintaining the resolved dependency graph in memory.
3. This is a breaking change because the resolved files will have a "slightly" different order. Ideally, we want to avoid such changes because they influence the classpaths. It should be possible to avoid this breaking change by somewhat mirroring the behavior of CachingDirectedGraphWalker however it may require extra effort and complexity. The new order is only 'slightly' different, it is arguably better (because it more consistently favors order as declared plus it makes the getFiles() consistent with getResolvedArtifacts() order-wise). However, it's always safer to stick to the old order.
Added a comment.
Updated some samples that depend on the order of classpath files. Missed that in my earlier commit.