Optimise GetHatred code, mob vision/radius, check for NPC troop

One less check for mobs with no master, and also prevent minions from
attacking faction troops that aren't attacking the master. Changed how
monster vision works - the default is now larger and dependent on viDifficulty.
Monsters should now only aggro within that vision radius, and once you
get too far outside the radius they will no longer chase you.