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.
ENHANCED: CLP(FD): Use newly available var_property/2 to avoid
                   "Test is always true: var(...)" warnings.
corrections in documentation of var_property/2
add module-qualifier to goals in goal_expansion/2
ENHANCED: Simplify clp(fd) goal_expansion output.  Avoids compiler
warnings about trivially true or false goals and speeds up non-optimized
programs.
corrections in documentation of var_property/2
Updated xpce
Merge remote-tracking branch 'origin/clpfd-simplify'

Thank you Jan!

Conflicts:
	library/clp/clpfd.pl
remove unneeded code
use a single if/endif directive to test for var_property/2
look deeper into conditions

This finally closes Ulrich Neumerkel's i3a#309:

   list_sum([E|Es],S1) :- S1 #= E+S2, list_sum(Es,S2).

Previously:

   %?- listing(list_sum/2).
   %@ list_sum([], 0).
   %@ list_sum([B|E], A) :-
   %@ 	(   integer(A)
   %@ 	->  (   integer(B),
   %@ 		integer(C)
   %@ 	    ->  A=:=B+C
   %@ 	    ;   D is A,
   %@ 		clpfd:clpfd_equal(D, B+C)
   %@ 	    )
   %@ 	;   integer(B),
   %@ 	    integer(C)
   %@ 	->  (   var(A)
   %@ 	    ->  A is B+C
   %@ 	    ;   D is B+C,
   %@ 		clpfd:clpfd_equal(A, D)
   %@ 	    )
   %@ 	;   clpfd:clpfd_equal(A, B+C)
   %@ 	),
   %@ 	list_sum(E, C).
   %@
   %@ true.

Now:

   %?- listing(list_sum/2).
   %@ list_sum([], 0).
   %@ list_sum([C|E], A) :-
   %@ 	(   integer(A)
   %@ 	->  B is A,
   %@ 	    clpfd:clpfd_equal(B, C+D)
   %@ 	;   clpfd:clpfd_equal(A, C+D)
   %@ 	),
   %@ 	list_sum(E, D).
   %@
   %@ true.
better naming
alignment for better readability
ENHANCED: library(sandbox): various issues with safe directive checking.
ADDED: Auto-load library(sandbox) if [sandboxed(true)] is used with
load_files/2.
ADDED: load_files/2: sandboxed(true) to ensure we cannot assert clauses
with other modules.
FIXED: Safe directive checking
Updated clib