Introduce GemArtifact, pushes to RubyGems.org

* Promotes a single gem at a time due to S3 index staleness
* Currently relies on BOSH_VERSION being up-to-date (via GemComponent)
VersionFile exposes version read from BOSH_VERSION
Be strict that BOSH_VERSION exists

Without this a silent failure is likely since we rely on pwd
DRY creation of components
Remove unused method
Always write BOSH_VERSION building gems