Extend restriction concept to GameOutcomeRep, GameInfosetRep, and GameNodeRep and add Exception handling

Restriction concept extended to these classes. GameInfoset and GameNode will use restriction concept for behaviour restriction in extensive form
games. m_unrestriction pointer and retrieval function Unrestrict() added to these.

Explicit throwing of UndefinedException added to all existing Unrestrict() functions for representations that are not actually strategic restrictions.