1. Validation callbacks

Add a callback method to each set, which would allow short-circuiting
the generated arrangements if a set was unwanted. This could cut the
number of sets enumerated drastically.

For instance, suppose the set is 1, 2, 3, 4, ... 9, and you want to
get it back in 4 sets of [3, 2, 2, 2]. Easy enough.

Now imagine that you want to add the following constraints

	sum set[0] == 16
	sum set[1] == 12
	sum set[2] ==  7
	sum set[3] == 10

The following code solves the above

my $s = Set::Partition->new(
    list      => [1..9],
    partition => [3, 2, 2, 2],
);

while (my $r = $s->next) {
    print join( ' ', map { "(@$_)" } @$r ), "\n" if
        $r->[0][0] + $r->[0][1] + $r->[0][2] == 16
            and
        $r->[1][0] + $r->[1][1] == 12
            and
        $r->[2][0] + $r->[2][1] == 7
            and
        $r->[3][0] + $r->[3][1] == 10
    ;
}

... but at the price of a lot of futile arrangements.
