Don't assume artefact has attributes methods

This is more consistent with PublicationPresenter
behaviour for looking up artefact attributes, and
by doing this, we can stub the api adapter in
tests to return a hash where necessary.