Hi Dave,
It appears our developer guide has not been kept up to date with some code changes. At one point we changed it so that the state systems are built from an analysis instead of explicitly from the trace implementation. The two other classes you refer to have been renamed to remove 'Tmf' prefix.
In your case, you do not need to register the state provider. You should create an analysis, and that analysis you register with the extension point org.eclipse.linuxtools.tmf.core.analysis. Then the analysis should be executed when the trace is opened if automatic=true (or when the view is opened if automatic=false). If your analysis module extends TmfAbstractAnalysisModule (or AbstractCallStackAnalysis) then you need to override createStateProvider() and that is where you reference your state provider.
If you use the Call Stack view, it will automatically look for an analysis that extends AbstractCallStackAnalysis. If you make your own view that extends AbstractTimeGraphView, then it is in overriding buildEntryList() that you make it look for your own analysis.
Patrick