Properties: use partial template specialization.

Avoid a lot of code duplication.

Also change constructor _def param to a const&, which was only in
the std::string specialization before, but makes sense everywhere.
9 jobs for prop-partial-specialisation in 2 minutes and 52 seconds
Status Name Job ID Coverage
  Test
failed clang-c++11 #68939
Linux

00:01:56

passed cppcheck #68941
Linux

00:00:37

passed doc #68946
Linux

00:00:21

failed gcc-c++11 #68938
Linux

00:01:52

passed macos-c++11 #68940
Apple

00:02:51

passed VS2015-32-bit #68945
VS2015

00:01:09

passed VS2015-64-bit #68944
VS2015

00:01:22

passed VS2017-32-bit #68943
VS2017

00:01:29

passed VS2017-64-bit #68942
VS2015

00:01:17

 
Name Stage Failure
failed
gcc-c++11 Test
src/CMakeFiles/OpenVolumeMesh.dir/build.make:75: recipe for target 'src/CMakeFiles/OpenVolumeMesh.dir/OpenVolumeMesh/Attribs/StatusAttrib.cc.o' failed
make[3]: *** [src/CMakeFiles/OpenVolumeMesh.dir/OpenVolumeMesh/Attribs/StatusAttrib.cc.o] Error 1
CMakeFiles/Makefile2:97: recipe for target 'src/CMakeFiles/OpenVolumeMesh.dir/all' failed
make[2]: *** [src/CMakeFiles/OpenVolumeMesh.dir/all] Error 2
CMakeFiles/Makefile2:201: recipe for target 'src/Unittests/CMakeFiles/unittests.dir/rule' failed
make[1]: *** [src/Unittests/CMakeFiles/unittests.dir/rule] Error 2
Makefile:190: recipe for target 'unittests' failed
make: *** [unittests] Error 2
ERROR: Job failed: exit status 1
failed
clang-c++11 Test
src/CMakeFiles/OpenVolumeMesh.dir/build.make:75: recipe for target 'src/CMakeFiles/OpenVolumeMesh.dir/OpenVolumeMesh/Attribs/StatusAttrib.cc.o' failed
make[3]: *** [src/CMakeFiles/OpenVolumeMesh.dir/OpenVolumeMesh/Attribs/StatusAttrib.cc.o] Error 1
CMakeFiles/Makefile2:97: recipe for target 'src/CMakeFiles/OpenVolumeMesh.dir/all' failed
make[2]: *** [src/CMakeFiles/OpenVolumeMesh.dir/all] Error 2
CMakeFiles/Makefile2:201: recipe for target 'src/Unittests/CMakeFiles/unittests.dir/rule' failed
make[1]: *** [src/Unittests/CMakeFiles/unittests.dir/rule] Error 2
Makefile:190: recipe for target 'unittests' failed
make: *** [unittests] Error 2
ERROR: Job failed: exit status 1