Completely restructured the solver classes to be templated. This will allow for greater flexibility for using different domain types. Not compiling at the moment, but I will resolve this later.