(MAINT) Add lucid support to platform version codes
(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`
Merge pull request #351 from anodelman/make-gem

(GEM) create beaker 1.15.0 gem
(HISTORY) generate history file for beaker 1.15.0
Merge pull request #353 from anodelman/make-gem

(HISTORY) generate history file for beaker 1.15.0
(QENG-849) beaker should maintain a history file that provides...

...information per gem release

- generate a markdown history file from beaker git log
(QENG-6) Beaker DSL `scp_*` commands print the options hash as if...

... it were executed on the command line
- simply remove the option hash from the debug line, it isn't
  appropriate there.
Merge pull request #338 from anodelman/add-history

(QENG-849) beaker should maintain a history file that provides...
(QENG-912) Beaker 1.14 breaks PE Puppet Acceptance

- was too conservative in removing non utf-8 compliant characters -
  ended up removing compliant characters along with undef/invalid
  character codes
- tested locally and it preserved messages like:
/etc/puppet/modules
├── jimmy-appleseed (v1.1.0)
├── jimmy-crakorn (v0.4.0)
└── jimmy-thelock (v1.0.0)
- correctly removed actual undef/invalid characters so that string
  methods can be run (ie, split, gsub)
Merge pull request #354 from anodelman/scp-repair

(QENG-6) Beaker DSL `scp_*` commands print the options hash as if...
Merge pull request #356 from anodelman/utf-8-encoding

(QENG-912) Beaker 1.14 breaks PE Puppet Acceptance
(QENG-923) Ensure @codename is set if platform string has codename

Beaker 1.14.0 and up has a change to Beaker::Platform which ensures that
@version and @codename is set if the platform string contains the
version number, and that @version is set if platform string contains the
codename, but it fails to set the @codename in this later case.

Puppet currently has debian/ubuntu configs checked (used in ci) which
use platform strings of the form debian-wheezy-x86_64. We could change
these, but it looks like the intention of the Beaker::Platform object is
to provide @version and @codename (where codenames are used).

This patch ensures that @codename is set along with @version in these
cases.