(QENG-431) expanded and improved role support in beaker

- make is possible to use arbitrary role names for most beaker DSL APIs
- create block_on method to wrap code execution on a set of hosts defined as a single host, an array of hosts, by a symbol representing a role or by a string representing a role.