Solving Games with Functional Regret Estimation