correct next/3

We cannot arbitrarily interpret "next to" and "near" as "to the right
of", because simply exchanging the first two arguments of next/3 might
yield no solution in that case.

However, there are now several possible arrangements of houses:

   ?- houses(Solution).
   %@ Solution = [h(norwegian, fox, kool, water, yellow), h(ukrainian, horse, chesterfield, tea, blue), h(english, snake, winston, milk, red), h(spanish, dog, lucky, juice, white), h(japonese, zebra, kent, coffee, green)] ;
   %@ Solution = [h(norwegian, fox, kool, water, yellow), h(ukrainian, horse, chesterfield, tea, blue), h(english, snake, winston, milk, red), h(japonese, zebra, kent, coffee, green), h(spanish, dog, lucky, juice, white)] ;
   %@ false.

The questions that are asked can still be answered satisfactorily:

   ?- setof(N, Hs^S^D^C^(houses(Hs),member(h(N,zebra,S,D,C), Hs)), Sols).
   %@ Sols = [japonese].

   ?- setof(N, Hs^A^S^C^(houses(Hs),member(h(N,A,S,water,C), Hs)), Sols).
   %@ Sols = [norwegian].