Fix for "Multiple variables with sets in a single state #24"

Fix for "Multiple variables with sets in a single state #24"...
About "HashSet<String>" -> "Map<String, Set<String>>":
If user put some variables inside one state, IMHO, he wants to process it at the same time. So i grouped all variables by state name and process all variables at the same time.

If we have multiple variables with and without "set{...}" inside one state, we need to create multiplication of all possible variants and than create "PossibleState"s. So to found out what variables we need to process at the same time i grouped it by state name. Are you agree?