Added a newArrayVar overload and fixed a nasty SolutionTree defect.

There is now a Solution.newArrayVar method which accepts an Int =>
DomainType functor so that array entries are not required to have
homogeneous domains.

SolutionTree used incorrect logic to eliminate variables to be expanded.
This was reproduced in test cases and the solution verified.