pyInterface: Solve setBranchAddress problem.

Finally solve the setBranchAddress problem which has been around for quite a
while. Introduce a new templated function setBranchAddress, which can be bound
to any boost::python wrapper and will set the branch address for the given
object and the tree and name from the arguments. As the pointer to the C++
object has to be kept alive, it is stored in a static map in the function. Note
that this is a memory leak, the map is never cleared. However, the memory
leaked should be limited and for the moment, I cannot think of a better
solution.

Implement this function for the fitResult and the ampIntegralMatrix and remove
the workaround code which has been there before.

Note that this change might break your python scripts using fitResult objects
read from TTrees.