Various Cocoa improvements and fixes

Changed behaviour of vtkCocoaRenderWindowInteractor::TerminateApp().
It used to do one of two things: 1) terminate the application completely,
or 2) close the NSWindow and stop the event loop.  Now it never closes
the NSWindow, never terminates the application, and always stops the
event loop.  Start() and TerminateApp() are now pairs, which is how other
platforms already behave.  Also refactored NSApplication runloop
starting/stopping code into static functions that do only that.  Makes
more sense since there is only one event loop, there doesn't need to be
an association with any class or instance.  Thanks to Pat Marion for
reporting this problem and creating a patch.

Changed of behaviour observing for NSWindow closing.  First, moved the
private vtkCocoaServer class from vtkCocoaRenderWindowInteractor to
vtkCocoaRenderWindow.  Its job is to observe window closing.  Since
vtkCocoaRenderWindow creates the NSWindow, it make more sense there.
We were previously careful to only observe NSWindows created by VTK,
but are now also careful to *stop* observing only those same windows,
whereas previously there was an outside chance of stopping observation
of all window closes, which is something a library should not do
(who knows what else the application is doing).  Now when an observed
NSWindow closes, we no longer stop the event loop, but merely remove
our reference to it.

Changed vtkCocoaRenderWindow::SetWindowName() to interpret its char*
string parameter as UTF8 instead of ASCII.

Fixed possible memory leaks in ~vtkCocoaRenderWindow.

Replaced most invocations of 'autorelease' in favour of 'release'.
The motivation being that VTK, as a library, might sometimes be called
before an autorelease pool is even setup, so better to avoid autoreleased
objects as much as possible.

Fixed some whitespace and coding conventions
(asterisk positioning, constness, etc.)

Change-Id: I5a5d410012980ee9f6c637c340e98e3daa5aee74
make rubber band look correct on scenes with textures

vtkTexture turns on an alpha test. If your scene has any textures in
it the selection rubber band looks wrong. The reason is that when
rubber band draws into the screen with renderwindow::SetRGBA the background
pixels, presumably with failing alpha values, can not change.

Change-Id: I6c78592234b9b4e38e020f148def9d84d7d66bf8
Properly handle background selector visibility

Change-Id: I808ce6ef3e7981409184fdb7a54a4655f3439b79
Fix and enhance the box plot and chart

Fix the problem with the position of Y axis: long labels were trunked.
This position was fixed, it is not flexible depending the size of the labels.

Add new functions to the chart API to allow manipulation of series
by id (vs by name).
Add support for manual plot labels setting.
Enhance the boxplot displacement, it now correctly follow the mouse
without ugly jumps.

Change-Id: I400cd064616f7b93415e17db9749d709ea2f7345
vtkWeb: Teach launcher.py to wait for ready_line

Rather than just waiting the full timeout check the output of the
process for the ready_line ( which is configured in launcher.json ).
This should resolve timing issues related to server websockets not
being ready to receive client connections. Also in error paths rather
than return status code 200 (ok) return a reasonable error code.

Change-Id: I3cd99ab5758184002500e3b9adc6208d0fd736e0
vtkWeb: Add appropriate error codes for launch requests

Rather than returning 200 ( ok ) set the response code to an
appropriate error code.

Change-Id: I5a474cb0ffd66881216d1600b51a1f560f5b2207
Add support for empty strinngs in SetInputArrayToProcess.

SetInputArrayToProcess ignored empty strings (treating them same as NULL
strings). This behavior makes it impossible to pick arrays that have no
names. Fixing SetInputArrayToProcess to not ignore empty strings. Also
added a check in GetInputArrayToProcess to handle the case where no
array association was specified.

Change-Id: I3c3a9017ea014c2b8f844133956add72c1cf3e6d
Make it possible to override ClampPos.

This is needed to add support for editing control points where Y is not
clamped to [0,1].

Change-Id: I96c36c49d51964ac19a657dffa9cd8184e8b23f2
Merge topic 'enable_subclassing' into master

59b7ad11 Make it possible to override ClampPos.
Additional baseline for TestAreaSelections

Change-Id: I3d57c5e00e7ecd90e1ed87e232ece26deb237a07
change signatures for wrapping

Apparently functions whose signatures contain vtkSmartPointer
are not wrapped into python.  Change such methods of
vtkTreeHeatmapItem to contain ordinary pointers instead.

Change-Id: Ic98311c10f1e7a99fb4ad071d3981e4febb0604e
Merge topic 'treeheatmapitem_wrapping' into master

6d501034 change signatures for wrapping
Pass std::strings through the OStreamWrapper.

This allows vtk[SG]etMacro to be used with std::string ivars.

Change-Id: I654754d580034a889afa4d2535bb2a16c9746f07
Merge topic 'FixAndEnhanceBoxPlots' into master

cee00a0e Fix and enhance the box plot and chart
Merge topic 'std_string_ostream_passthrough' into master

c49b9c19 Pass std::strings through the OStreamWrapper.
Revert "Pass std::strings through the OStreamWrapper."

This reverts commit c49b9c19d5f2a8124cb4884e93bd772285f405ac.

I'm going to remove this commit until we can figure out what to do
with strings. The conventions say std::string is our preferred string
container, but also that STL containers cannot be used in Common/Core.

Change-Id: I1db2bad22bb74ca19de5355fb44371b58b59e900
Fix composite rendering widget for search

Change-Id: Ied803827399742991f96df04b920d8459e80c92b
Merge topic 'catalyst-web-composite' into master

1228f920 Fix composite rendering widget for search
4b450f4d Properly handle background selector visibility
Merge topic 'std_string_ostream_passthrough' into master

c78a1e6a Revert "Pass std::strings through the OStreamWrapper."
Merge topic '14258-remote-polyhedra' into pv-master

c8bec1f2 Handle polyhedra in vtkUnstructuredGridWriter.
42b0733e Process facestream in vtkExtractUnstructuredGridPiece::RequestData.