metadata: Implement hash calculation.

Implement the calculation of the MD5 hash of the data tree. Also implement a
static function in the dataFileWriter which allows to re-calculate the hash of
a given tree and make use of this function in printMetadata, where there is now
a command line option to re-calculate the hash of a given file and compare it
with the saved value.

In order for the hash calculation to work reliably, the exact order of the
input has to be preserved. To be able to do this, save the additional variable
labels in the metadata to ensure that the variables are read in the same order
whenever the hash is (re-)calculated.

Also add progress bars to convertDataFile.