add a hash combine implementation that has some minor performance guarantees
Added structures for RestrictionTarget and RestrictionSource.
Replaced std::pair with classes.
Looks like fixed wrong restriction type in CheckForEmanatingIsOnlyTurn (now RestrictionTarget instead if RestrictionSource).
Fixes to fulfill remarks.
Non-explicit constructor and hash-functions.