(QENG-431) (cleanup + split out filtering) expanded and improved role support in beaker

- split out filtering from applying the block to hosts
- block_on now determines if we have a filter or not
- run_block_on accepts both a set of hosts and an optional filter