utilities: Add metadata object for data.

Add a new file to the utilities directory which contains the metadata object to
be used in the data files. The same file should also contain the converter
class which handles the filling of the metadata, but this is not implemented
yet. Add a utilities test which does nothing except including the newly created
files so that it is compiled somewhere.
utilities: Add rootpwaDataFileWriter.

Add the rootpwaDataFileWriter class which can be used to write rootpwa data
files from input data. A basic structure is already there and should be
functional, the big piece missing is the content hash generation. Also update
the dataMetadata class and make testDataConverterUtils do at least a little bit
of work.
utilities: Add executables for meta data.

Add two executables for the handling of meta data. The first one takes an
rootpwa file in the format that was used up to now and produces a new file in
the new format, i.e. including the metadata. The second print meta data
information for a given file.

Also, alter the structure a little bit: the dataMetadata class gets its own
source and header file together with a dictionary for that while the
rootpwaDataFileWriter stay in dataConverterUtils.hpp. This is not very nice,
but will be leaned up in the next commit(s).
metadata: Move metadata stuff to its own directory.

Move all the files concerned with the new file format including metadata to its
own directory to decouple it from the utilities library (which actually has the
sole purpose of housing the git hash information).
metadata: Move the rootpwaDataFileWriter.

As the naming of the dataConverterUtils.hpp does not make sense anymore, move
it to dataFileWriter.h. To have a clean move, the file is left unchanged,
resulting in broken compilation in this revision. Will be fixed in the next
commit.
metadata: Fix compilation.

Fix compilation after the renames in the previous commit. Move most of the code
of the rootpwaDataFileWriter from the header file to the source file, fix the
cmake files, the includes and some other minor problems.
metadata: Rename rootpwaDataFileWriter.

Rename the rootpwaDataFileWriter to dataFileWriter, as the "rootpwa" was
completely unnecessary.
pyInterface: Add bindings for the dataFileWriter.

Add the python bindings for the dataFileWriter class. Using this, add a small
python script convertDataFile.py, which does the same as C++ version, just a
little less ironed out (less printout, debug switch does nothing, less error
checking).
pyInterface: Improve conversions of pairs.

Improve the conversion of std::pairs by using the function which was
implemented in the previous commit which facilitates and harmonizes conversions
form python tuples to std::pairs.
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.
metadata: Cosmetics.

Change the type of a variable to a typedef which was set before.