Rather than 'fake' the log support in the context items, integrate
with the charting code and use the existing log scaling implementation.
This also fixes some issue with the charts log implementation.

- made vtkScalarsToColors::SetRange(double[2]) virtual, since the other SetRange() is. Likewise vtkLookupTable::SetTableRange(double[2]).
- changed most uses of dangerous GetTableValue() (that returns inner buffer) in favour of version that copies the values out.
- use fixed-size memcpy in a few places for a potential speedup
- improved some comments
- added a few consts, especially with buffers
- removed const on plain old ints
- moved a nan check earlier, saving work when true
- moved some variable declarations closer to initialization
- removed some unneeded semi colons
- removed some useless casts, added others for clarity

Adding in functionality to allow inserting vtkNew objects into
stl containers of vtkSmartPointer objects as well as comparisons
between vtkNew objects and raw pointers. Also removing Get() and
GetPointer() calls from vtkNew objects since in most instances we
can just pass in the vtkNew<> object instead of having to use the
Get() or GetPointer() methods to get the raw pointer.

Axes Selection worked not perfectly when showing the same
data (and same selection) in multiple parallel coordinates
view.
This fixes it by :
* Ensuring that the "colored" axes are shown only if the last selection
have been made in this view
* Reseting the selectionn even when the selected axes was not previously selected

This topic is the result of running clang-tidy to
modernize our usage of NULL and 0 to nullptr. It also
includes some manual and semi manual changes where
clang-tidy would not be expected to work (such as in
comments, or classes not compiled on this build)
There are definitely many comments and occurances that
this topic misses that we will need to fix over time.

This patch set addresses the duplicate inherited member warnings stil
remaining from those originally pointed at:
https://open.cdash.org/viewBuildError.php?type=1&buildid=4730716
The issues with vtk::ChartMatrix, vtk::RenderedTreeAreaRepresentation, and
vtk::XRenderWindowInteractor classes had to do with the private
implementations of their members being declared as protected.
The rest of the issues had to do with simple duplicate inherited members.
The documentation present for the DataSet ivar in
vtk::SimpleCellTessellator is transferred to its parent class
vtk::GenericCellTessellator.

This commmits intruduces a openturns modules and two filters
using openturns based on pdf computation.
The Kernel Smoothing Filter compute kernel smoothing on 1D data to be displayed in a line chart view
while the Density Map filter compute density maps on 2D data to be displayed in any type of chart views.
It also replace vtkScatterPlotMatrix with vtkOTScatterPlotMatrix
using a factory, in wich it can draw density maps
This also include some small modifications to vtkScatterPlotMatrix
to enable easy specialization of the class

The duplicate call to InitializeDrawArea() (which is already called
in vtkContextArea's constructor) caused a duplicate subtree of context
items to be created, resulting in all items added to the area to be
rendered 4x per Paint(), rather than just once.

The OpenGL2 backend has changed how text is positioned -- instead of
aligning the entire texture manually (and only for rotations that are
multiples of 90 degrees), we now use the anchor position provided by
the text renderer that aligns to the drawn pixels and supports arbitrary
rotations.