Add an alternative to with_master_running_on that can be used with PE

Previously we added methods called `with_puppet_running_on` to several
individual projects so that we could get them to have similar behavior
to `with_master_running_on` but work on our enterprise products as well.
This combines and refactors the downstream `with_puppet_running_on`
implementation, bringing them into the harness proper.

NOTE: this removes `with_master_running_on` completely and will break all tests that use it. Do not merge until more testing has been done and the implications have been socialized.