_artifact.py: Move element metadata caching to Artifact Class
As the artifact object now stores keys, it allows for the simplification of metadata methods. Transitioning the metadata members to Artifact also means the private accessor methods can be removed from Element which reduces the overhead of syncing private variables across the two classes via parameters. With the key and metadata handling now being internalised within Artifact, a temporary Artifact for the last_successful incremental build is created for correctness. This should help guarantee that an Artifact object is never used to access different artifacts.
Showing with 53 additions and 173 deletions