changed exchange solver interface to no longer take a graph as a constructor argument. exchange solvers now must be created on the heap, configured, and then handed to a caller (the context in the core, e.g.). the Solve member interface now takes a graph as an argument and sets the protected graph_ member. it then calls the virtual, protected member function Solve that is implemented by the various derived solvers.