Split expanded ensemble function
The expanded ensemble function was split into a part chosing a new
lambda state, and a second part updating the reference temperature
in the case of simulated tempering. To leave legacy paths unchanged,
the original function name has been maintained, which calls the two
parts. The function chosing a new lambda state is declared in the
header to allow modular simulator to call it separately.
This is pure refactoring (with the exception of moving a few variable
declarations to their initialization sites). Expanded ensemble is
covered by the new FEP tests.
This prepares introducing the expanded ensemble in modular simulator,
and is a first step towards #3848.
Refs #3417