Build from source

@mattgillooly 

Adds support for building from source. This allows a Gemfile to have a gem pointing to a local path or git repository. When the pipeline is deployed, gems will be packaged from their source.

Additionally adds the improvements to the `bootstrap_context` used for compiling templates for selecting how gems are downloaded from s3 and adding a reference to the s3 steps path.

/cc @peakxu