set and shuffle plugins

- moved set and shuffle logic to plugins
- plugin registration now occurs in the loveletter_game function (where
all the rules are specified)
- plugins now expose a performRule() function, rather than creating an
instance, pickupplugin was modified to reflect the new paradigm
- plugins no longer need to be constructed during setup, because all
interface functions are called as needed
- the performCommand plugin interface now returns true if the command is
used by the plugin or false otherwise (matches the behaviour of
performRule)
-