(QENG-188) Allow foss runs to use service scripts

Prior to this commit, any run of beaker with a non-pe master that
attempted to stand up a master with a particular configuration in order
to test against it using the with_puppet_running_on() helper would
always stand up a webrick master by executing `puppet master <args>` and
then later stop it with `kill`.

The platform team needs to be able to run acceptance suites in which the
puppetmaster is started/stopped using package provided init scripts, or
by restarting apache if a passenger puppetmaster package is installed.

This PR makes a few additions to OptionsHash, Host and the DSL::Helpers
to allow us to distinguish foss hosts which were spun up from source
from those which were installed from packages.  And if we are working
with packages, whether we will be attempting to restart a running
service or stop/start using service scripts.
Nope, and the exit codes need fixing too; I think these were just lost during merge, which had a messy conflict in this section.  I'll fix it up; thanks for catching that!