'returns a list of the unique groups adjacent to position
\'unique\' means that, for example in this position:
. B W . .
. W W . .
only the one white group would be returned on get_groups_around((1,1))'

def get_groups_around(self, position):

    groups = []
    for (nx, ny) in self._neighbors(position):
        group = self.group_sets[nx][ny]
        if ((len(group) > 0) and (group not in groups)):
            groups.append(self.group_sets[nx][ny])
    return groups
