2.2 Optimized UNIONSTORE

We needed to append to a set the content of anothers and, as there isn't an "append" command, we used the sunionstore. The problem was that as the destination set grew, the sunionstore started to take more time as it has to remove all the elements of the set and add them to the destination, which is inneficient if the destination set is one of those involved in the union.

This detects when the destination key is one of the source keys and, in this case, if the set is not empty it is used as the destination set instead of creating a new one.