Rich author entity.

Model an author as a standalone entity, rather than going
through the person entity table. This allows us to categorise
authors as journalists, agencies, etc. but also support
genders and races.