This commit cleans up the code that manages remote rendering.
This fixes several issues: #15205, #17611, #18940, #18152, #18938,
and #18937. #17815 is also addressed since its no longer applicable.
ParaView no longer creates a single render window to use among all
vtkPVView instances on non-client processes like pvbatch or pvserver,
pvrenderserver. This shared render window was the root cause of several
headaches and necessitated classes like vtkPVSynchronizedRenderWindows
and extra burden on views to re-direct several calls like creating
windows, resizing windows to vtkPVSynchronizedRenderWindows. This is no
longer the case. Non-client processes still have a single viewable
window per proceses (vtkPVProcessWindow). However, this is not the
window that each view renders into. Instead, each view creates its own
vtkRenderWindow subclass. However, it's a FBO-based render window which
shares the context with the process specific render window
(created in vtkPVProcessWindow). This makes it possible to simply blit
back the rendering results from each view to the user-viewable window
when needed (e.g. tile display, cave, etc.).
`vtkPVSynchronizedRenderWindows` is now obsolete and removed with
appropriate convenience API now moved over to vtkPVView. This also
removes the need to initialize each view with a unique ID and hence
`vtkPVView::Initialze()` API is no longer needed and hence removed.
vtkIceTCompositePass was fixed to address several issues including tile
display aspect ratios (#18152, #17611). vtkPVIceTCompositePass is no
longer needed and hence removed which further simplifies the code.