Extract S3 work in Pipeline into Storage concept

This was done so that we are able to give a unprivileged storage
download-er to the Pipeline class to allow people that don't have our
Jenkins AWS credentials to download stemcells for the BATs.
Slight refactor to Pipeline:download_stemcell to use Pipeline.build_id for version
Created download and upload adapters to replace pipeline functionality
Continued Pipeline/Build refactoring

* Moved fetch_stemcells to BatHelper
* Added build to BatHelper
* Added download_stemcell in preparation for removing Pipeline
* Refactored FogStorage into PipelineStorage (This should go away once Pipeline is removed)
Moved s3_url into Build - Build only relies on Pipeline for 's3_upload'
Remove Pipeline from BatHelper.

Move bosh_stemcell_path and micro_bosh_stemcell_path to Build.
Use 'candidate' factory method instead of initialiser
Fix bug due to missing trailing slash
Fix rubocop style violations.
Fixed failing tests due to new stemcell file name format and moved Infrastructure class