Some more rearranging to clean up the caching process. Created a new output state aggregation class to to hold the output commands. Changed to save actual commands instead of the converted byte value as some controllers need different data types. This way the controller can just do their final evaluation with their own command handler. Using binary serialization for now, so made the command classes serializable for that. Do we want to write our own way to do that eventually?