_artifact.py: Store sandbox config and environment in artifacts

This commit adds sandbox config and environment variables to the
artifact, so that they can be used later to shell into a downloaded
artifact or to run commands such as `bst artifact checkout --integrate`
which require running sandboxes on downloaded artifacts.

Summary:

  * _artifact.py:

    - Store new data in the new proto digest, similar
      to how we store public data.

    - Added new accessors to extract these from a loaded artifact.

    - Bump the proto version number for compatibility

  * _versions.py: Bump the global artifact version number

  * element.py: Call Artifact.cache() with new parameters

  * tests/cachekey: Updated cache key test
32 files changed