Added roles for the player (no implementation of their working code yet just base classes and such. Also, added the context (factory) to switch between the role states