wtaj - Fixed a bug in swap method which was inversing the participation for groups even though the swap_true flag was set to true on one of the groups.
                                                                                                  The bug was causing staging-tfunds build to fail randomly. The scenario was: One blue group with participation set to true, one grey group with participation set to false and 'never swap' set to true. The expected behavour is swap does nothing but in actual affect it was reversing the participation flag - this only occurred if the grey group was defined before the blue group.

Talking to David, we agreed to make one change in behaviour which is  that if there is only one swapable group, do not touch the participation flag (previous behaviour was to make at least one partipate - pick the first one, even if it happens to be non-swappable one). Added a test to verify this behaviour.