[WIP] Monster infighting

Monster vs monster wars that don't depend on allegiance to player.

Monsters are divided into factions (currently based on the first species). Monsters within the faction do not look up any other monsters in the faction when looking for targets, so it shouldn't be significantly slower for monocultures of zombies. Friendly (to player) monsters have their own faction.

Possible issues:
- Checks for the first species. Monstergenerator doesn't ensure every creature belongs to any species.
- Uses string comparison to compare species. Might be slow
- Large number of creatures of different species could be slow, like large number of friendly creatures could be now
- Multispecies creatures will only respect first species. Not a problem in unmodded game (3 blobs with ["NETHER", "BLOB"])
- A great deal of abilities don't yet support targets who aren't g->u
- Fear/anger triggers still require the player

What would be a good way to turn those string comparisons to something faster?
Is species based division OK or should it be independent (flags maybe?)?
Instead of `*type->species.begin()` you should make a monster of mtype function that returns this data. It can later be changed into a more sophisticated faction system (your dog is on your side/faction, the npcs dog is on their side/faction, the wild dog is on a third faction).

Repeating `type->species.begin()` everywhere makes this more complicated. Seeing code like `this->getFaction() == other->getFaction()` is self documenting (comparing factions for obvious reasons), comparing the species is less obvious (why only the first one?).