Merge branch 'tpollard/908' into 'master'

Artifact 'abstraction' class

Closes #908

See merge request BuildStream/buildstream!1175