Add mapping constraint factory.
Add integer between constraint.
Simplify solver with obvious recursive method.
Replace UniqueValueIterator with actual iterator.
Set interval min/max to -/+ one million.
Fix weird less than or equal constraint behavior.

When trying to narrow intervals around the bounds, strange things would
happen. Expressing it this way is more natural anyway (and we can now
push interval bounds to the limits of the datatype).
Implement better pruning.

Domain iterators were previously iterating all singleton domain subsets,
which was very expensive for large domains.

Domain iterators may now return (disjoint) chunks of their domain to
test to see if any of the subvalues are promising. For integer domains,
this allows huge ranges of numbers to be discarded immediately.