suppport for multi-user rules

- rules can be sent to multiple users, and the server awaits responses
from all relevant users before continuing
- add variables to locations (location variables are applied to cards
when they are added)
- deck variables are applied to cards when they are added (existing card
variables are not overwritten, only new variables are added)
- created UniqueList, which is has a next iterator, it can also remember
the location of removed items, so the next iterator works even if an
element has been removed