Now it should be possible to do meaningful LS and LNS on sequence variables.
Move RevBitSet to constraint_solveri.h.
Extend sequence with RankLast/RankNotLast.
Change assignment element on sequence to take 3 vectors:
- rank_firsts.
- rank_lasts.
- unperformed.
Changed FillSequence accordingly.
Change proto accordingly.
Add trace event on SequenceVar::RankSequence.
Add trace event on SequenceVar::RankLast/RankNotLast.
Added a RankSequence which take as input these 3 vectors.
Add RevArray<T> template.
Generalize use of Rev<T> and RevArray<T> in the code.
Add API to discover and collect the decision variables of the model.
Test it in model_util.