Add missing 'linked_agent_role' definition to records that use linked_agent

The "role" property was meant to be treated as a dynamic enum, but we were just
storing the bare string instead of mapping it.  This commit changes it to be
treated as a dynamic enum.

Also modified the Agents mixin to fail loudly if you forget to provide these
values.

We've added a migration for this change to set people's existing data right:
removing the "role" column and setting up the appropriate dynamic enum
linkages.