Tyrant: Use named parameters

I had a long list of positional arguments and I had no clue what they
mean.
Tyrants: Remove unused CONFIGS

Sadly this is not really being used. It may return at a later time, but
we should remove dead code now.
Tyrants: Rename 'type' to 'platform'

Type is quite a vague name
settings: Use a hash instead of a struct

The advantage of this scheme is that every parameter in the PLAYERS
array is given a clear label for its purpose.
The disadvantage is that there is no checking for whether someone typos
factoin_id: rather than faction_id: or similar. The next commit solves
this.
Tyrants: Double-splat player hash into Tyrant ctor

This gives the advantages of clearly-labeled arguments in
Settings::PLAYERS and checking for correctness. If there is an incorrect
keyword argument, the Tyrant ctor will reject it.
Merge branch 'better-configs'

* better-configs:
  Tyrants: Double-splat player hash into Tyrant ctor
  settings: Use a hash instead of a struct
  Tyrants: Rename 'type' to 'platform'
  Tyrants: Remove unused CONFIGS
  Tyrant: Use named parameters