Introduce helper classes for force provider input and output
This patch introduces two structs, ForceProviderInput and ForceProviderOutput,
which are used for calling IForceProvider::calculateForces(). These structs
are meant to be short-lived containers only: they just bundle up pointers to
data needed by the force providers and then directly go out of scope again after
the call to calculateForces().
The advantage of assembling all input and output data for a force provider into
two containers is that the signature of the calculateForces() method does not
need to change (again) if someone comes up with a new force provider that needs
additional input or output.
As suggested by Mark and Teemu in https://gerrit.gromacs.org/#/c/6637/
Change-Id: Ib1a076293acd963c995477cb847a7a2d8708f4c3