turn preferences into numpy arrays
add sparse solvers

only LogicalSolver implemented so far. Drop-in replacement for the
non-sparse LogicalSolver.  Intended for use on large conflicts.
update tests

fix results, and add tests for the sparse solver.