addRelation(relation, position, adjacentRelation) {
    relation = this._vivifyRelation(relation);
    position = position || 'last';
    if (typeof relation.node === 'undefined' && relation.attach) {
      relation.attach(position, adjacentRelation);
    } else {
      relation.addToOutgoingRelations(position, adjacentRelation);
      relation.refreshHref();
    }
    // Smells funny, could be moved to Asset#_vivifyRelation?
    if (relation._hrefType === 'inline' || !relation.to.url) {
      relation._hrefType = undefined;
      relation.inline();
    }
    this.assetGraph.emit('addRelation', relation); // Consider getting rid of this
    return relation;
  }
Attaches a Relation to the Asset.

The ordering of certain relation types is significant
(`HtmlScript`, for instance), so it's important that the order
isn't scrambled in the indices. Therefore the caller must
explicitly specify a position at which to insert the object.

@param {Relation} relation The Relation to attach to the Asset
@param {String} [position='last'] `"first"`, `"last"`, `"before"`, or `"after"`
@param {Relation} [adjacentRelation] The adjacent relation, mandatory if the position is `"before"` or `"after"`