Refactored flow function computation to call FlowFunction.computeTargets in a protected method (which can be overwritten by child classes) instead of directly in the solver logic.

The concrete use case was a return flow function which needed access to the context in which it was applied. With this refactoring, one can now simply subclass the solver, overwrite the new protected method and do one's problem-specific magic there.