Refactor TeamComposition to HeroLineup, which better describes the class.
Moved comparison logic from Equals override to hasSameHeroes. If equals is overridden, so should GetHashCode, which apparently must be constant over the object lifetime.