extract ImplicitFunctionSolver from NewtonSolver
make TriangleContourBuilder depend on ImplicitFunctionSolver instead of NewtonSolver
rename all the improper term "newton" to "gradient"