use HDF5 built-in casting
use HDF5 built-in casting real32 <=> real64 and int32 <=> int64. We no longer manually cast int <=> real to reduce code complexity and memory usage. This also helps avoid inefficient user code where type casting int <=> real was accidental.
The gain in efficiency and reduction in code complexity outweighs the small and easily fixed user use cases that used int <=> real casting. The user will have to assign appropriate variable types to match disk datatypes. Again, real32 <=> real64 and int32 <=> int64 is fine and handled inside the HDF5 library.
About 1,000 lines of code were deduplicated/eliminated, one of the largest reductions in this project's history.