Call install_* methods only once in spec_helper_acceptance

Previously, we were calling `install_pe()` or `install_puppet()` for each host even though that helper installs puppet across all hosts. This causes errors on multi host config setups. This also updates the `install_puppet()` invocation to install native packages on windows, osx and fall back to gem on other platforms.

**note in local testing I got past the puppet installation (the affected code) but my run hung on the module install, so someone with a local setup should verify.