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

- make is possible to use arbitrary role names for most beaker DSL APIs
(QENG-431) expanded and improved role support in beaker (part 2)

- add support for running commands against hosts by name
- add support for arbitrary role methods, like those for built in roles
    eg, on master, "echo hello"
        on myrole, "echo hello"
Merge pull request #341 from waynr/maint/fix-multi-dev-repo-case

(MAINT) Fix multiple dev repo installation case.
(GEM) create beaker 1.14.1 gem
Merge pull request #237 from anodelman/role-repair

(QENG-431) expanded and improved role support in beaker
Revert "(QENG-431) expanded and improved role support in beaker"
Merge pull request #343 from puppetlabs/revert-237-role-repair

Revert "(QENG-431) expanded and improved role support in beaker"
(MAINT) Fixes `Beaker::DSL::InstallUtils` broken spec.

Signed-off-by: Wayne <wayne@puppetlabs.com>
(MAINT) Add lucid support to platform version codes
Merge pull request #344 from waynr/maint/fix-multi-dev-repo-case

(MAINT) Fixes `Beaker::DSL::InstallUtils` broken spec.
Merge pull request #342 from anodelman/make-gem

(GEM) create beaker 1.14.1 gem
(MAINT) Whitespace for readability
(QENG-894) Use puppet to restart puppet

This way we don't have to detect which init system is being used. Since this
is currently only used for with_puppet_running_on it should always have puppet
available.
(maint) Improve `InstallUtils#install_puppet()`

Use `#check_for_command` instead of `#check_for_package` where appropriate
in `#install_puppet`

Previously there was no `Host#check_for_command` method, but
`Host#check_for_package` did a `which` (it effectively was checking for
the command). Now that we've separated out that behavior we need to use
the ones we mean in `InstallUtils#install_puppet()`. This is important
because when we fall back to a gem install of Puppet we ensure there is
a command `gem` available from (often) the package `rubygems`.
Merge pull request #339 from pcarlisle/lucid-version-code

Add lucid support to platform version codes
(QENG-912) Beaker 1.14 breaks PE Puppet Acceptance

- seems to be an issue with string encoding
- ensure that we convert from current encoding to utf-8, doesn't mangle
  utf-8 strings and correctly converts binary strings
Merge pull request #350 from anodelman/utf-8-encoding

(QENG-912) Beaker 1.14 breaks PE Puppet Acceptance
Merge pull request #348 from pcarlisle/qeng-894-systemd-with-puppet-running

(QENG-894) Fix with_puppet_running_on for systemd
(GEM) create beaker 1.15.0 gem
Merge pull request #349 from justinstoller/maint/master/do-the-right-thing

(maint) Use `#check_for_command` instead of `#check_for_package`