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.
Fixes null reference bug. Variable was not initialized.
Also rearranged variable declaration to be more uniform.
Beta 3 commit of Export using new Cache Engine
Remove a GC.Collect that was causing the Nutcracker effect to block and prevent multi-threaded rendering.
Add Parallel rendering for effects in the scheduler.
Merge remote-tracking branch 'remotes/bolwire/NCGridFix'
Do some additional work to use our fancy multi-core cpus to do the background rendering in parallel.
Fix a issue where the grid thread may be updating snap point collection while it is attempting to draw it.
Merge branch 'master' into PerformanceWork