message: Add paranoid check to avoid an infinite loop
  I suppose technically we could still have an infinite loop if the random
  number generator kept spitting out the same value. Though for Mersenne
  Twister, that should only happen with a seed of 0, otherwise all
  possible values will eventually be returned.
diff: #include <algorithm>
  #include <iostream>
  #include <array>
  +#include <stdexcept>
  +#include <string>
  namespace
  @@ -71,6 +73,11 @@ void Population::spawnPopulation(int morale, int residences, int nurseries, int
  mPopulation.child -= newRoles.student;
  mPopulation.student -= (newRoles.worker + newRoles.scientist);
  + if (newRoles.retiree > mPopulation.employable())
  + {
  + throw std::runtime_error("Retiring more people than employable population: Retiring: " + std::to_string(newRoles.retiree));
  + }
  +
  for (int toRetire = newRoles.retiree; toRetire > 0;)
  {
  /** Workers retire earlier than scientists. */
  