use append/3 after discussion with Paulo and Jan

append/3 is part of the Prolog Prologue and has the following
additional didactic advantage: It shows how we can easily obtain more
general versions of next/3, and see what happens for example if we
interpret "near" as "up to two places away" by adding clauses like:

   next(A, B, Ls) :- append(_, [A,_,B|_], Ls).
add zebra_owner/1 and water_drinker/1, remove setof/3 examples as suggested by Jan