New c++ version of backtracker, following similar ideas to Robin's one.

Designed for multithreaded/distributed programming,
though a lot of things were not done yet.

Done:
- Cardinality sorting of rows
- Tie-breaking of cardinality sorting by sorting rows of equal cardinality
by binary comparison in decreasing order
- Sorting of columns by binary comparison in decreasing order
- Reduction of bitset arrays to 6
- Ordering of first rook heights apparitions in the algorithm's traversal
  order
- Discard states where remaining count is too low
- Can use initial user guess to reduce search space
- Communication between the backtracking process and an external thread
  (it performs only basic monitoring right now)

Not done yet:
- Compile-time flag for equilibrium conditions (which is yet unproved!)
- Optimization attempt to limit columns/floor cardinality
  by the maximum cardinality of a row (to break cube symmetries)
- Check work-stealing capabilities
- Randomized exploration order implementation
  (which would periodically shuffle the work queue)
- Multi-thread implementation (even if technically the current
  implementation use two threads)
- Distributed implementation
- Data serialization (see TODOs in grid.cpp)
...