instantiate one fetcher per download
Removing monkey patch to rubygems build_extensions

As of Rubygems 2.0.7 build_extensions uses mutex
to ensure thread-saftey, so no need to duplicate
efforts in Bundler.
Rubygems thread-fix is avaliable from 2.0.7 onwards
Check rubygems cache dir to ensure no gems are corrupted
Use each_with_object instead of reduce
Refactored check_rubygems_cache_dir using group_by
check before ensure in case of exceptions
readability
Log gem installation in install.log in .bundle dir of the app