pyInterface: support loading/saving of fileManager to hard drive

create functions to save/load a fileManager object to/from the hard drive.
These functions are located in pyInterface/package/_fileManager.py and are
executed by calling pyRootPwa.core.saveFileManager (or load). Create a new
script that creates a fileManager and saves it to the hard drive for later use.
The metadata eventsType enum has to be internally handled by a python class
that resembles an enum to allow pickle to save it to the hard drive (bug in
boost::python).
Change the fileManager so that it takes a config object to initialize instead
of a config filename (config object is initialized in the outer scripts).
Remove the initialization of the particleDataTable (should also happen in outer
scripts). Do not calculate the amplitude file names with a function call each
time you need them, but calculate them once upon initialization and save them
to a list.
pyInterface: add userInterface/calcAmplitudes.py script

add a high level script that takes a config file and calculates all amplitude
files that the fileManager (which should be created by using the
createFileManager) knows.
Remove initialization of particleDataTable in package/amplitude.py, this should
only happen in the outer level scripts.

calcAmp sq
decayAmplitude: delete calcIntegrals.cc and testIntegral.cc

delete calcIntegrals.cc and testIntegral.cc since the integral calculation is
now done by the python script pyInterface/userInterface/calcIntegrals.py.
pyInterface: add calcIntegrals python script

add userInterface/calcIntegrals.py script. This script calculates an amplitude
integral matrix from all the amplitude files determined by the file manager.
Before executing calcIntegrals.py you need to first run calcAmplitudes.py with
the same fileManager.
For this change we had to introduce a new package function "calcIntegrals"
which takes a list of amplitude files as argument and returns the
ampIntegralMatrix object. The package function extracts all the amplitude trees
from the amplitude root files and adds the waveNames from the amplitude
metadata to the ampIntegralMatrix object (this is the new method 'addWave').
Then calcIntegrals calls the ampIntegralMatrix.integrate method, which has been
rewritten to take a vector of TTrees as argument (the tree extraction was
previously done in the ampIntegralMatrix object).