EC2 spot provision

Refactored pull request for initial EC2 Spot support. Spot instances can be provisioned with a specified price.

AMIs need to be configured with start up scripts to register themselves with Jenkins master once they have been fulfilled. For information on what is required for configuring an AMI see our guide [here](https://docs.google.com/a/g.rit.edu/document/d/1lpPQrNtjFt8P7792lRd0TVY-609RNlPdVmWUKnuiNbo/pub#h.5lf0im8ntuh9).