Teach (iter)solve to take generic iterables of iterables as clauses argument

Previously, you could call `solve` (and `itersolve` implied by `solve` form here on out) only with a list of lists of ints. Alternatively you could call `solve` with an _iterator_ of lists of ints. This pull request adds the ability to call `solve` with a generic iterable of iterables of ints, for example a tuple of generators of ints.

The tests I've added only test `solve`, not `itersolve`. I'll try also to add tests for `itersolve`. 

This addresses issue #3.