Use different wrapping for const char vs non-const char
This change is needed in order for VTK to compile with Python 3.7, since in Python 3.7 the PyUnicode_AsUTF8() method was changed so that it returns "const char *" instead of returning "char *". Another possible (ugly) fix would be to simply add a const_cast.
Previously, the contents of a Python 'str' would be passed directly to C++ methods that took non-const 'char *' arguments. This was bad, since 'str' is immutable but there was no guarantee that the C++ method wouldn't try to modify the string. Now the C++ method receives a copy of the Python string for 'char *' args and only directly receives the contents for 'const char *' args. If a Python bytearray or other mutable sequence is passed as 'char *', then the wrappers will write any modifications back to Python.