+2/2 Optimizer

+ParameterSequencer
+move SystemPerformance.BuildStatsOnBacktestFinished() upstack; successful backtest handles this by itself; removed from Optimizer and ChartForm;
+1. for non-multithreading optimization, you dont get the real clone unattached from strategy saving on ChartForm.GetPersistString<DockPanel.SaveAsXML; fixed by scriptParametersByIdClonedReset=newDictionary() instead of scriptParametersByIdClonedReset.Clear()
+2. for non-multithreading optimization, sequential next run you must ContextsByName.Clear() and Add(new OptimizationIteration); instead, you get 36 iterations in one context; fixedby executorCompletePooled.Strategy.ScriptContextsByName.Clear();
+3. doesn't help this.ScriptAndIndicatorParameterClonesByName = new SortedDictionary instead of this.ScriptAndIndicatorParameterClonesByName.Clear()
+abort invokes OnOptimizationAborted but doesn't interrupt properly
+added Optimizer to Windows MainForm menu
+fix multithreading optimization; //inNewThread = true; shows everything sequentional otherwize duplicates; fixed by CloneReferenceTypes(false)
TODO limit CPU/Cores 1...2*CoresDetected
TODO CPU/Cores increased during the backtest lead to quote.ParentBarSimulated.ParentBarsIndex != bar2simulate.ParentBarsIndex & DONT_INVOKE_ME_TWICE
TODO olvBacktest.AllColumns.Add() doesn't help to hide columns