Refactor solver API

* Move solver application specific functionality to SolverApp.
* Use SolverApp instead of Solver in main functions.
* Implement direct LocalSolver connection.
* Move MockProblemBuilder and ArrayRef to their own headers.