Added variations logic.

Up to now, each provided variation is combined, in the order provided
(reverse, camel case is not the same as camel case reverse). Maybe I
will add an option to PERMUTE variation, but this will greatly change
the complexity of the calculation.