Bring over cache compile work from Experimental
Clean up code and name things better.
Some work on creating the cache persistence mechanism. Still needs work around the actual persistence type and the organization of the data. This is mainly the concept and framework to go further.
More evolution. Now saves and can be restored from the cache object. Using a BinaryWriter/Reader for now. Not sure that is still the best mechanism, but it can be swapped out easily enough. Sequence service can now generate a cache object or load it for a given sequence. Mechanisms are in place for specific cache objects to be created for each type of sequence. Only implemented Timed Sequence for now. Cache object will be paired up with the original sequence with a .tcf extension for timed cache file. Not married to that, but works for now.
Fix old reference to protobuf.
Add missing files.
Move actual work into a background thread. Expose and event that it started and one when it ends to notify interested parties. Expose the timing mechanism in the event so it could be used to monitor progress.
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?
Rename timing class to be more descriptive.
Starting clean branch of PreCache for adding of Export function
Merge branch 'master' into PreCache

Conflicts:
	Modules/Editor/TimedSequenceEditor/TimedSequenceEditorForm.Designer.cs
	Modules/Editor/TimedSequenceEditor/TimedSequenceEditorForm.cs
A couple more tweaks. Ensure that no other contexts are running by pausing them and the nresuming when we are done. Remove the parallel on the outs command generation. The units of work are so small that the overhead outweighs any gains.
Beta 3 commit of Export using new Cache Engine
Merge branch 'PreCache' of https://github.com/jeffu231/vixen into Dilbert
Adding progress reporting for save, cleanup after exit
Remove text from status bar on startup, remove Export Complete Messagebox at end and replace with status bar text for complete and cancel operations
Merge Precaching and Export work, from remote-tracking branch 'remotes/ebrady1/Dilbert'

# By Jeff Uchitjil (10) and Ed Brady (4)
# Via Ed Brady (2) and Jeff Uchitjil (1)
* remotes/ebrady1/Dilbert:
  Remove text from status bar on startup, remove Export Complete Messagebox at end and replace with status bar text for complete and cancel operations
  Adding progress reporting for save, cleanup after exit
  Beta 3 commit of Export using new Cache Engine
  A couple more tweaks. Ensure that no other contexts are running by pausing them and the nresuming when we are done. Remove the parallel on the outs command generation. The units of work are so small that the overhead outweighs any gains.
  Starting clean branch of PreCache for adding of Export function
  Rename timing class to be more descriptive.
  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?
  Move actual work into a background thread. Expose and event that it started and one when it ends to notify interested parties. Expose the timing mechanism in the event so it could be used to monitor progress.
  Add missing files.
  Fix old reference to protobuf.
  More evolution. Now saves and can be restored from the cache object. Using a BinaryWriter/Reader for now. Not sure that is still the best mechanism, but it can be swapped out easily enough. Sequence service can now generate a cache object or load it for a given sequence. Mechanisms are in place for specific cache objects to be created for each type of sequence. Only implemented Timed Sequence for now. Cache object will be paired up with the original sequence with a .tcf extension for timed cache file. Not married to that, but works for now.
  Some work on creating the cache persistence mechanism. Still needs work around the actual persistence type and the organization of the data. This is mainly the concept and framework to go further.
  Clean up code and name things better.
  Bring over cache compile work from Experimental

Conflicts:
	Modules/Editor/TimedSequenceEditor/TimedSequenceEditorForm.cs
	Vixen.System/Sys/Managers/ContextManager.cs