Optional dependency on boto
Context
As a user of BuildGrid, I currently am forced to depend on the S3 implementation that is used, called boto. This is unfortunate as it introduces a dependency for a feature that I might not necessarily use. That is, one can use the BuildGrid CAS without S3 support and also use BuildGrid simply as an execution service without any need for S3 at all.
Task Description
Ideally the dependency on boto could be optional or the S3 functionality would disable itself (with a warning) if boto were not present. If the CAS is configured to use S3 through the config then BuildGrid could simply fail to start if it detects the user has configured it to use S3 but doesn't have boto available.
Acceptance Criteria
I can use BuildGrid without having boto available.