Fixed a few mistakes in previous commit.
Renaming files to match the class names.
Merged leftover functions from Matrix to SparseMtrx (unnecessary virtuals can cause performance issues and was therefore removed from FloatMatrix, which makes it pointless to keep the Matrix at all).
Cleanup of classfactory; Code moved to C file, Minimization of header include leakage.
Added missing header to usrdefsub.
Removed unused, broken, string-to-fieldtype enum. This enum is just used internally anyway, so there is never any need to convert from strings.
Fixed another mistake in earlier commit (which removed the unnecessary numbering of solvers)
Added wrappers to DSSMatrix constructor in order to make it more convenient to use with class factories.
Added missing ifdef in crosssectionclassfactory
Added std::map for every type of object the classfactory can construct (except InitialCondition which I don't believe should even be there).