Pipeline as gems

@mattgillooly @kbarrette 

Allows a pipeline project to be packaged as a gem, uploaded to s3 with its dep, and be easily installed when the EMR cluster is bootstrapped. For this to work, a project must have

1. a gemspec
2. a Gemfile and Gemfile.lock
3. a `templates/bootstrap_emr_sh.erb`

The `Pipely::Tasks::UploadPipelineAsGem` task will package the project as a Gem and upload the project gem and its dependencies from Bundler to the `s3_gems_path` on S3. All `.erb` files in templates are processed with access to the [bootstrap context](https://github.com/swipely/pipely/blob/95947cae3c581b35b3ed57bcc019e894260812c7/lib/pipely/deploy/bootstrap.rb) and uploaded to the `s3_steps_path` on S3.

    Pipely::Tasks::UploadPipelineAsGem.new do |t|
      t.bucket_name = 'the_bucket'
      t.s3_steps_path = 'steps'
      t.s3_gems_path = 'steps/gems'
      t.config = definition.config
    end

The `Pipely::Tasks::UploadPipelineAsGem` rake task, the process is triggered as part of the `rake deploy`

Bundler is interrogated and the gems are uploaded first, followed by compiling the templates. The templates need to know what gems to pull from s3.

`Pipely::Deploy::Bootstrap` is a helper class to get everything ready before compiling the templates.