Updated odbc
introduce and use variables_in_index_order/2
use existing variables in card/2 constraint, if possible

Example, previously:

   %?- sat(card([2,3],[A,B,C,D,E])).
   %@ sat(A=:=A),
   %@ node(197)- (A->node(196);node(194)),
   %@ node(194)- (B->node(193);node(191)),
   %@ node(191)- (C->node(190);node(182)),
   %@ node(182)- (D->node(159);false),
   %@ node(159)- (E->true;false),
   %@ node(190)- (D->true;node(159)),
   %@ node(193)- (C->node(192);node(190)),
   %@ node(192)- (D->node(173);true),
   %@ node(173)- (E->false;true),
   %@ node(196)- (B->node(195);node(193)),
   %@ node(195)- (C->node(178);node(192)),
   %@ node(178)- (D->false;node(173)),
   %@ sat(B=:=B),
   %@ sat(C=:=C),
   %@ sat(D=:=D),
   %@ sat(E=:=E).

Now:

   %?- sat(card([2,3],[A,B,C,D,E])).
   %@ sat(A=:=A),
   %@ node(11)- (A->node(10);node(9)),
   %@ node(9)- (B->node(7);node(6)),
   %@ node(6)- (C->node(3);node(2)),
   %@ node(2)- (D->node(0);false),
   %@ node(0)- (E->true;false),
   %@ node(3)- (D->true;node(0)),
   %@ node(7)- (C->node(4);node(3)),
   %@ node(4)- (D->node(1);true),
   %@ node(1)- (E->false;true),
   %@ node(10)- (B->node(8);node(7)),
   %@ node(8)- (C->node(5);node(4)),
   %@ node(5)- (D->false;node(1)),
   %@ sat(B=:=B),
   %@ sat(C=:=C),
   %@ sat(D=:=D),
   %@ sat(E=:=E).
CLP(B): Add experimental support for +(List) and *(List) syntax,
        denoting multi-argument disjunctions and conjunctions.
        Please give feedback about this syntax.
        Suggested by Gernot Salzer.

    Example:

       ?- sat(*([A,B,C])).
       A = B, B = C, C = 1.
Updated semweb
FIXED: use_module/1 did not import from module files that define additional
modules (e.g., by defining unit tests inside the file).  Wouter Beek.
Updated xpce
ADDED: library(prolog_colour): support for user-provided colouring of
dicts.
ADDED: library(sandbox): code_type/2, char_type/2 and others are safe.
string_code/3 is safe.