It is hard to work with / maintain the placement functions when they have various different return types.
- This refactors these functions, so that they all return the same type.
- Some general validation for the return type
- removes the g_PlayerbaseTypes global from rmgen2
- as this prevents adoption from playerPlacementByPattern() by rmgen1 maps
- And is unnecessary now
One *could* make a PlayerPlacement class and just pass that object around, but that would be an even bigger pain to change all the maps, so I opted for just the validation function.
Still TODO: rename all the functions & the user facing descriptions to be uniform (will be done in a separate patch)