LSCallback interface. Implementing the LSCallback interface enables users to
call functions to react to specific events or to call a function
regularly during the search. It can be used for example to control when
to stop the search or to display some specific information during the search.
Note: When a callback is called, the solver is paused.
In that state, you can call all the methods marked as "allowed in state
LSState.Paused". Calling any other method will throw an error.