The CognitiveModuleState defines the interface for the state of a
CognitiveModule. The reason it exists is because the dynamic state of a
module needs to be kept independent and is tied to a specific
CognitiveModelState. The previous CognitiveModuleState is the parameter
given to the update function of a CognitiveModule.