This ensures all the required Qt5 variables can be found.
For example, just importing Qt5Core does not help find QT_UIC_EXECUTABLE using
the macro "get_target_property(QT_UIC_EXECUTABLE Qt5::uic LOCATION)".

Qt5 is built and packaged with the -reduce-relocations configure option as
default. This causes compilations to run with the -Bsymbolic-functions option,
which makes function pointer comparison ineffective, unless the -fPIE flag is
also supplied.

QAbstractItemModel::reset -
The deprecated function emitted two signals, namely modelAboutToBeReset and
modelReset. Using beginResetModel and endResetModel to emit these signals
instead.

QAbstractItemModel::createIndex -
Ambiguity when compiling with gcc.
When the last parameter is either NULL or 0, GCC fails to resolve
which path to follow. Use the default value (void* ptr = 0) provided in the
function declaration.

Using qInstallMessageHander and QtMessageHandler
QtMessageHandler has a different signature than QtMsgHandler providing
information about context. Incorporated that information in the vtkOutputWindow
message printout.

Added a new flag called PARAVIEW_QT_VERSION that can be set to either 4 or 5.
Depending on the value of this flag, the appropriate Qt version is looked for
and built against.

If PARAVIEW_QT_VERSION==5, the necessary Qt5 modules can be
imported by including the script "ParaViewQt5.cmake". This script also sets
important Qt variables used throughout the project.

Setting the officially supported version of Qt5 to 5.0.2. Although, paraview
compiles fine against Qt-5.0.0, there are known issues that prevent it from
being fully functional (https://bugreports.qt-project.org/browse/QTBUG-28872).
Setting the minimum Qt5 version to 5.0.0.

pqSelectionInputWidget was setting up the default value for the selection input
using a timer. That was happening after the auto-apply timer timed out. Thus,
the apply would happen before the value was set, resulting in the default for
the representation being setup incorrectly. That meant no data would be shown
even the selection-input was setup immediately after when the timer expired.
This fixes that issue by ensure that pqProxyPropertyWidget explicitly does the
initialization and removing the timer logic from pqSelectionInputWidget.

On static build dashboards, since StreamingParticles plugin is auto-loaded,
ParaView was raising error when loading AMR datatsets.
vtkStreamingParticlesRepresentation was incorrectly indicating that it can't
support AMR datasets. Any representation added to "GeometryRepresentation" is
required to support all datatypes that GeometryRepresentation supports. Fixed
that.

Every time the view is updated, we recalculate the chart axis ranges. The
recalculation logic respects the case when user has "fixed" the axis range so
it's not a problem to do this on every update. This ensures that over time and
when new series are added/removed, the axis range is update automatically.

When the domain for property with a vtkSMChartSeriesSelectionDomain changes, we
need to update the property to reflect the change. This implementation handles
it as follows:

+ vtkSMChartSeriesSelectionDomain has 'experimental' logic to update the
property values to reflect the domain change.
+ pqSeriesEditorPropertyWidget uses a filtering mechanism to filter out rows for
series that are not currently in domain to avoid the table from getting too big.
+ Also includes some cleanup to pqSMAdaptor to speed up certain 'get' calls.

Added a pqTableView which is a QTableView subclass that can resize its height
based on the number of rows in it in an attempt to avoid to adding scroll bar
for not too long a list of rows without always taking up space when there are
fewer items in the table.

Added mechanism on vtkSMProxy to set default values for all properties that
pqProxy now uses when a new proxy is created. We still have a few hacks lurking
around for dealing with compound proxies in pqPipelineSource.

Added support in vtkSMChartRepresentationProxy to correctly set UseIndexForXAxis
property's default value based on what XArray is picked.

The "X" array wasn't showing up correctly on the histogram panel. The problem
was that pqStringVectorPropertyWidget didn't setup hooks to monitor the
domain to update the available values in the combox-box. Fixed that.

The primary objective of this refactor is to remove custom display panels for
charting views such as line/bar/scatter-plot-matrix/parallel-coordinates views
and migrate these panels to the new style as required by the unified Properties
panel added in ParaView 4.0.

The secondary object is to move logic for setting up defaults etc. to the
ServerManager layer rather than in VTK or Qt world, so that the representations
behave consistently in pvpython and ParaView-GUI.

This is achieved as follows:

+ New domains are added (vtkSMChartSeriesListDomain and
vtkSMChartSeriesSelectionDomain) which can be used on properties pertaining to
series in a plot e.g. SeriesVisibility, SeriesColor etc. These domains
automatically keep themselves up-to-date when new arrays are added or removed
due to other state changes. Like other domains in ParaView, these only depend
on the data-information available on the client-side.

+ vtkChartNamedOptions and vtkXYChartNamedOptions are removed. Instead
vtkChartRepresentation subclasses take over the responsibility of managing
series parameters. vtkXYChartRepresentation is suitable for vtkChartXY views
which accept vtkPlot subclasses.

+ pqChartSeriesSettingsModel represent the table-widget used for presenting user
with the available series and changing their properties. Based on properties
available on the proxy, pqChartSeriesSettingsModel can adapt its UI to show as
few or as many widgets as needed. pqChartSeriesSettingsModel is used for all
2D views, thus we no longer need separate pqChartSeriesSettingsModel and
pqPlotSettingsModel which have been removed.

+ vtkPVPlotMatrixRepresentation now respects order specified by the user on the
SeriesVisibility property. The UI no longer hacks the order changes (which
were not preserved in state files or undo/redo stacks), instead updates the
property appropriately. Same can be done for
vtkPVParallelCoordinatesRepresentation, but missing API on
vtkPVParallelCoordinatesRepresentation keeps that from actually working, for
now.

+ Refactored logic for dealing with multiblock-of-tables. The mechanism for
naming/addressing tables in a multiblock dataset has also changed to make it
easier to read. vtkChartRepresentation makes it easier for subclasses to work
with multiblock of tables (e.g. vtkXYChartRepresentation) or a single
vtkTable (vtkPVParallelCoordinatesRepresentation,
vtkPVPlotMatrixRepresentation).

A few side effects:

+ New arrays that become available are no longer shown automatically. The onus
falls on the appplication layer to manage their visibility/appearance. Work in
progress to update UI when new arrays become available.