Refactoring Generators code to use CSPOM patterns and toolkits
Revert "Interval was moved to CSPOM"

This reverts commit 57c4af1c597f7ebebfa3b5bcacfc2db2acb6cb1c.

Conflicts:
	src/main/scala/concrete/IntDomain.scala
	src/main/scala/concrete/generator/ProblemGenerator.scala
	src/main/scala/concrete/generator/cspompatterns/AbsDiff.scala
	src/main/scala/concrete/util/IntervalSet.scala
Working on new domain generators
Work on generators
Working on new generators
Uses new IntInterval/IntRangeSet implementation
Working on domain generators…
Simplified variable generation
Various optimizations
Tested domain reduction against canonical form
Various debugging

Tool to enforce types on variables
Adapt to new version of IntInterval
Skip AbsDiffDomains computation when all domains are defined
Updated to CSPOM 2.2, make a few changes accordingly
New domain generator for "bool2int" constraint
Upgraded scala-logging to 3.0.0
Upgraded CSPOM to 2.3-SNAPSHOT
Added SumDomains compiler relying of Intervals arithmetics
Split several constraints into BC/AC versions
Various debugging/improvements
Removed badly supported "SumNE" mode.
Began implementation of immutable BitVector in Scala.
Revamping BitVector API/Implementation
Revamping BitVector API/Implementation
Merge branch 'generators' of https://github.com/concrete-cp/concrete into generators

Conflicts:
	src/main/scala/concrete/util/BitVector.scala
	src/main/scala/concrete/util/LargeBitVector.scala
	src/main/scala/concrete/util/SmallBitVector.scala