Added serializer for module version selection reason.
Added serializer for module version selection.
Added serializer for module version selector
Added basic caching for configuration resolve results that are loaded from disk.

1. Previously, after the results were loaded, they resided in memory till the end of the build. Now, I'm keeping ~20 results during the build.
2. This improves the memory footprint of builds that need the results. For example, the ide plugins (e.g. 'gradle idea' in a large project).
Made checkstyle happy.