FindHDF5: find_program only searches HDF5_ROOT when specified
Since h5cc compiler wrappers are optional, search only HDF5_ROOT when specified, otherwise Anaconda wrappers may get picked up, causing link to fail.
Fortran module search is first under HDF5 C include directory to handle case where primary HDF5 library was not compiled with Fortran interface, which would usually cause link failure. If HDF5_ROOT specified, search Fortran hdf5.mod only under that.