Add support for extended Solver::solve() DIMACS system

This allows for testing assumptions. It triggers a lot of bugs.
Renaming variable 'value' into 'solution'
Fuzzing & fixing assumptions. There are still bugs left

But the fuzzer should help us iron them out
Oops, bug in assumption analysis code. Fixed
Code cleanup. lit2() should be saved into lit2, not lit1
Assumptions can contain variable numbers that are larger than nVars()

So guard against this specific problem by checking the assumption's
variable in analyzeFinal()
Half of the time, don't do any assumptions