simplified performRule interface

- performRule now just returns an array of BaseCommand[], the
BatchCommand is built in the client.
- if no plugins have a performRule, then just send the rule back as a
single command.