evolve: make the _solve* functions return a tuple
This patch makes _solve* functions return a tuple which will contain information
about whether we were able to solve the instability and if yes, then what was
the newnode. For more details about tuple, look the fn docs added.
There was some refactoring required in next command because of change in return
values. This also leds to omitting the wdir update message in case of dry-run
which is good.