[CMake] add -Wunreachable-code to compile flags

This will make clang actually detect some places. Cf. issue #109
dimensionTypeToString: refactor to remove unreachable code

Code was refactored so we have both a) compile warnings when
a enum element is not handled in the switch, and b) still be super
safe in case an element is still missed by throwing an exception.
PropertyHDF5: Remove two unnecessary returns after throw

As detected by -Wunreachable-code
DataTypeHDF5: do bool to H5::DataType with a template

The switch case over sizeof(bool) produced an unreachable code
warning. It has been replaced by a template function. This is nice
anyway because it is now done at compile time not runtime.
data_type_to_h5_*type: explicitly handle all types in switch

Code is rearranged in order to get warnings from the compiler
when not all cases are handled and throw an exception if one
of the not handled cases actually appears.
This fixes all the -Wunreachable code warnings and closes #109.
Merge pull request #116 from gicmo/Wunreachable

Enable -Wunreachable and fix all dead code locations.