renamed dumptest files to .csg and added group headers
changed group headers to empty group headers

this became necessary because the batch editing in the last commit
didn't respect that an empty group is not group() { } but group();
trim precision in dumptest regressions

in order for them to work against openscad's .csg output, the number of
decimal places was reduced.
modify root modifier example now that the test program respects the root modifier

as the dumptests are now run from a full openscad, the root modifier is
respected by the test program too; reflectin that in the unit test
use openscad as a replacement for dumptest and echotest

the echotest and dumptest still contain hacks to keep the delta to the
original unit tests minimal; possibly, some of these changes will make
it into the openscad program, at which time they can go away from there.
trim precision from the echo tests

as it was done with dumptest before
drop cgalpngtest for openscad drop in replacement
drop cgalpngtest all together

replaced in CMakeLists.txt with direct openscad call, and duplicate
checks removed

cgalpngtest_text-search-test was left in the Heavy configuration,
resolving the ambiguity of it being heavy with cgalpngtest and not with
openscad-cgalpng (which does the same thing)
drop moduledumptest, use `openscad -o ${NAME}.ast`

src/openscad.cc code was copy/pasted from .csg section; some refactoring
might make things nicer, but i didn't dare change too much for lack of
language knowledge
make test_pretty_print.py work with .csg and .ast too

file results that were neither txt nor png used to be ignored silently;
now, unknown extensions produce errors, and csg and ast are known.
renamed csgtermtest to .term
ctest infrastructure for native .term tests
add .term output for CSG term export
switch opencsgtest to native binary
remove test binaries for cgsltest, csgtermtest and opencsgtest
normalize -nan and -0 in all output modes

having a stable output is not only relevant in testing, and with the
main binary being used for more tests, having those normalizations takes
load off the preparing scripts tests/{dumptest,echotest}
document the testing migration to the main binary
document the new commands
acknowledge new output formats in release notes
Merge branch 'master' into no-testprograms

Conflicts:
	tests/CMakeLists.txt
	tests/regression/csgtermtest/assign-expected.term
	tests/regression/csgtermtest/child-expected.term
	tests/regression/csgtermtest/circle-expected.term
	tests/regression/csgtermtest/color-expected.term
	tests/regression/csgtermtest/cube-expected.term
	tests/regression/csgtermtest/cylinder-expected.term
	tests/regression/csgtermtest/difference-expected.term
	tests/regression/csgtermtest/dxf_linear_extrude-expected.term
	tests/regression/csgtermtest/dxf_rotate_extrude-expected.term
	tests/regression/csgtermtest/echo-expected.term
	tests/regression/csgtermtest/for-expected.term
	tests/regression/csgtermtest/glide-expected.term
	tests/regression/csgtermtest/group-expected.term
	tests/regression/csgtermtest/hull-expected.term
	tests/regression/csgtermtest/if-expected.term
	tests/regression/csgtermtest/import-expected.term
	tests/regression/csgtermtest/import_dxf-expected.term
	tests/regression/csgtermtest/import_off-expected.term
	tests/regression/csgtermtest/import_stl-expected.term
	tests/regression/csgtermtest/intersection-expected.term
	tests/regression/csgtermtest/intersection_for-expected.term
	tests/regression/csgtermtest/linear_extrude-expected.term
	tests/regression/csgtermtest/minkowski-expected.term
	tests/regression/csgtermtest/mirror-expected.term
	tests/regression/csgtermtest/multmatrix-expected.term
	tests/regression/csgtermtest/polygon-expected.term
	tests/regression/csgtermtest/polyhedron-expected.term
	tests/regression/csgtermtest/projection-expected.term
	tests/regression/csgtermtest/render-expected.term
	tests/regression/csgtermtest/rotate-expected.term
	tests/regression/csgtermtest/rotate_extrude-expected.term
	tests/regression/csgtermtest/scale-expected.term
	tests/regression/csgtermtest/sphere-expected.term
	tests/regression/csgtermtest/square-expected.term
	tests/regression/csgtermtest/subdiv-expected.term
	tests/regression/csgtermtest/surface-expected.term
	tests/regression/csgtermtest/translate-expected.term
	tests/regression/csgtermtest/union-expected.term
	tests/regression/dumptest/circle-expected.csg
	tests/regression/dumptest/color-expected.csg
	tests/regression/dumptest/cube-expected.csg
	tests/regression/dumptest/cylinder-expected.csg
	tests/regression/dumptest/difference-expected.csg
	tests/regression/dumptest/dxf_linear_extrude-expected.csg
	tests/regression/dumptest/dxf_rotate_extrude-expected.csg
	tests/regression/dumptest/glide-expected.csg
	tests/regression/dumptest/import-expected.csg
	tests/regression/dumptest/import_dxf-expected.csg
	tests/regression/dumptest/import_off-expected.csg
	tests/regression/dumptest/import_stl-expected.csg
	tests/regression/dumptest/intersection-expected.csg
	tests/regression/dumptest/intersection_for-expected.csg
	tests/regression/dumptest/linear_extrude-expected.csg
	tests/regression/dumptest/minkowski-expected.csg
	tests/regression/dumptest/mirror-expected.csg
	tests/regression/dumptest/multmatrix-expected.csg
	tests/regression/dumptest/polygon-expected.csg
	tests/regression/dumptest/polyhedron-expected.csg
	tests/regression/dumptest/projection-expected.csg
	tests/regression/dumptest/render-expected.csg
	tests/regression/dumptest/rotate-expected.csg
	tests/regression/dumptest/rotate_extrude-expected.csg
	tests/regression/dumptest/scale-expected.csg
	tests/regression/dumptest/sphere-expected.csg
	tests/regression/dumptest/square-expected.csg
	tests/regression/dumptest/subdiv-expected.csg
	tests/regression/dumptest/surface-expected.csg
	tests/regression/dumptest/translate-expected.csg