Add superseded state ahead of data migration

To make the renaming of the "archived" state to "superseded", we need
the state to be defined on the model. This is to stop the transitions
library from blowing up when the data is migrated but the code has not
been reloaded. I've had to add a trait and tweak a test to keep the
build happy.