Also does a bunch of other stuff.
This commit also adds language codes and a migration which inserts them all into the database. BREAKING CHANGE: redoes the initial database migration
This is more of a vertical slice of the intended functionality and needs to be extended.