Initial attempt to refactor the description creation code into a
general trait. This is complicated by the unfortunately convoluted
process of adding a new description to an existing entity, which we
should fix.