Added Set Operations on StrategySupportProfile

In StrategySupportProfile Added CheckValid to check if Set operations
leave at least one strategy
per player.

Union iterates through both StrategySupportProfile inputs (the calling
class and the class as parameter input) and adds both to a new profile
relying on AddStrategy method's duplicate checking.

Difference calls AddStrategy on all strategies from calling class then
calls DeleteStrategy on all strategies from parameter input class

Intersection checks each stategy from calling class for a duplicate
strategy and adds such strategy if duplicate found.