(PUP-3756) Only chown log file when running as root

Previously, if you specified a log file destination on non-windows
platforms, puppet would attempt to chown the file to the `Puppet[:user]`
and `Puppet[:group]`. However, this will only work if puppet is running
as root.

This commit change the log file destination to only chown when running
as root. It continues to skip the operation on Windows.
(MAINT) Remove PUPPET_LOADED from Gemfile

Remove the use of the PUPPET_LOADED environment variable from
the Gemfile, as the bug requiring its use has been eliminated by
Puppet Server's upgrade to JRuby 1.7.17.
(maint) Update ruby sha used to build

We've updated the certs included in ruby to access rubygems.org.
Since the website has updated their certs, we were behind, and
installing gems using the provided package of rubygems would fail. This
commit updates the sha of puppet-win32-ruby we are pulling in to include
in the msi build. This will provide the additional certs for use, and
allow people to access rubygems.org via the provided rubygem package.
Merge pull request #3419 from melissaanne/stable

(maint) Update ruby sha used to build
(QENG-1592) undefined method `assertions' in Beaker 2.0.0

- update to work with beaker 2.0, maintain 1.x backwards compatability
Merge pull request #3416 from joshcooper/ticket/master/PUP-3756-only-chown-as-root

(PUP-3756) Only chown log file when running as root
(PUP-3769) resource/service/should_not_change_the_system should only run on agents

Use the agents object to more definitely run against the proper
machines.  This test would previously error on windows runs after the agent
role is removed from the master for windows tests.  This change fixes
this issue.
(PUP-3378) Don't require puppet resource service output to be the same

Previously, the acceptance test would execute `puppet resource service`
twice, and compare the output to ensure puppet did not change the state
of the system. This was done because in the past the `init` service
provider would invoke the status command on all scripts in /etc/init.d,
including /etc/init.d/reboot.sh, which would unconditionally reboot the
system[1]

However, this test is not reliable as some platforms like fedora 19 &
20 have services that change state between the two puppet runs, e.g.
NetworkManager-dispatcher.service, and this behavior is unrelated to
puppet.

This commit removes the requirement that the `puppet resource service`
command be identical. We continue to execute `puppet resource service`
twice and compare the output of the ssh(d) service. We also have specs
to ensure that the `init` service's instances method excludes dangerous
scripts.

This commit also changes the test to use beaker's `puppet` DSL method,
which is the preferred way of executing puppet in acceptance tests.

[1] http://projects.puppetlabs.com/issues/14615

Paired-with: Eric Thompson <erict@puppetlabs.com>
Merge pull request #3424 from joshcooper/ticket/stable/PUP-3378-less-fragile-service-test

(PUP-3378) Don't require puppet resource service output to be the same
Merge branch 'stable'

Conflicts:
	acceptance/tests/resource/service/should_not_change_the_system.rb
Merge pull request #3420 from fpringvaldsen/remove-PUPPET_LOADED

(MAINT) Remove PUPPET_LOADED from Gemfile
Merge remote-tracking branch 'upstream/pr/3418'

* upstream/pr/3418:
  (QENG-1592) undefined method `assertions' in Beaker 2.0.0
(maint) Run on new container based travis infrastructure
Quote file modes as recommended

Add some quotes around strings that occur in block comments.  These
block comments are converted into HTML documentation that is published
on the official Puppet documentation Web pages at Puppetlabs.  It is
important that the examples be correct, because Puppet users are very
likely to uses these examples as a reference.

I noticed this because my colleagues started putting quotes around file
modes (e.g. mode => '0644').  From looking at the examples, I thought
the correct way to write these were as numbers.  But when I looked up
the documentation on the "mode" attribute of the "file" resource type,
it clearly says:

    This value should be specified as a quoted string; do not use
    un-quoted numbers to represent file modes.

So my colleagues seem to be right, but the examples are wrong.  This is
what the commit is trying to fix.

I also noticed that in one of the examples, the string values of the
"owner" and "group" attributes weren't quoted.  This seems to be an
error as well, so I fixed that too.

Another small change to the examples is that the numeric file modes are
written with four digits, i.e. with leading zeroes.
Merge pull request #3425 from dalen/travis_container

(maint) Run on new container based travis infrastructure
Merge pull request #3426 from sleinen/docs-quote-file-modes-2

(docs) Quote file modes as recommended