NonlinearSolver now uses SolverComponent

NonlinearSolver also implements SPOT
renaming a field for clarity
clone method added for SolverComponent to share variables and constraints
removed Objective from SolverComponent

objective will be implemented in individual solvers due to different algorithms