Restore the context to the last saved one and drop it.
The saved context MUST be removed.
Called each time that the last alternative (of the
previous alternative point) is starting.
Should be similar to context_restore followed by context_cut.
The current state must be set. It is the
first state, the root of the search.
When the feature returns, 'search_is_success' must be
checked to know if a solution was found.
When search_is_success=False, it means that there
is no solution at all. Conversely, if search_is_success=True,
then the first solution is found and 'search_next'
can be called to get the next solution if it exists.
When the feature returns, 'search_is_success' must be
checked to know if a solution was found.
When search_is_success=False at the end, it means that there
is no more solution. Conversely, if search_is_success=True,
then a solution is found and 'search_next'
can be called again to get the next solution.
This occurs if either a solution is found
(and then search_is_success=True) or no solution
is found (and then search_is_success=False).
That feature should be modified only by continue
and backtrack.