Use threads with ROOT

Use InitRootHandlers to make all the necessary calls to ROOT to enable ROOT's "thread safe" mode. This includes telling ROOT early that we will be using threads and then on each thread creating a dummy instance of TThread. The actual order of calling is handled by EventProcessor by calling through to the appropriate virtual function of RootHandlers. Also, all classes which inherit from TClassStreamer need to have a proper Generate() method since it is now called to create a copy of that class for each thread.