vtk: clean up / reduce code repetition
This refactors the vtk expressions to use a generic base expression,
which is used for all 3 versions.
vtk 7.x no longer uses gcc 8, since the quirk of it not building with
gcc 9 seems to have been fixed.
This also makes the python bindings available for all 3 versions, and
fixes building them for vtk 8 by adding a patch.