More efficient DIMACS parser

Even though we have a working DIMACS parser, some C++ constructs can make our parser more efficient, notably:

  • std::move
  • std::string_view