Shuffle (optional) the order of HDF5 files and the entries of HDF5 files

Shuffle the order of training samples when using hdf5

This commit shuffles the order of training samples within 
hdf5 files and shuffle the order of hdf5 files. Just use the
`shuffle` flag within the hdf5 layer.