Lea refactor biography statistic generation

There was a ton of duplication in the biography statistics generation. This is a massive cleanup to both reduce the size of the BiographyStatistic model and to eliminate the vast majority of duplication.
Can `string_1` and `string_2` have better names?