Unrolling solver takes an incremental solver

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