UnrollingSolver now uses an underlying incremental solver and use push and pop to drive the unrolling instead of creating a new solver each time