(PUP-2987) Windows service runinterval parsing

 - Refactor parsing code to a separate method to cleanup run loop
(PUP-2987) Restructure Windows service code

 - Move runinterval parsing and execution of the puppet agent to a new
   thread that maintains a busyloop until either:
    - the service is no longer running
    - an exception has occurred with parsing the runinterval
 - Rather than performing a wakeup against the main thread, simply kill
   this new thread on service_stop
 - Main service code will wait until the busyloop thread dies, then will
   exit
 - Note that this change is ultimately not responsible for the service
   hangs experienced in the service.  Additional changes have been made
   to the win32-service gem to ensure events being waited on with
   WaitForSingleObject are always signaled properly, even in failure
   cases.  Please see merged PR for more info:
   https://github.com/djberg96/win32-service/pull/21
   https://github.com/puppetlabs/puppet-win32-ruby/pull/51
Changing don't to does not because grammar
(maint) Clarify docs for certificate_status

Prior to this commit, the SAVE and DELETE sections of the
certificate_status HTTP API docs were conflicting.
This commit corrects the documentation of the SAVE section
to match the actual Puppet behavior and be consistent with
the DELETE section.
Merge pull request #2996 from nwolfe/maint/master/clarify-cert-status-docs

(maint) Clarify docs for certificate_status
Merge pull request #2977 from fiddyspence/doc/rpm_grammar

 (doc) Changing don't to does not in rpm.rb
Merge pull request #2936 from Iristyle/ticket/master/PUP-2987-windows-service-hangs

(PUP-2987) Windows service hangs
(PUP-2999) Use host.tmpdir for agent tmpdirs

PUP-2999 switched these two tests to use Beaker's new
create_tmpdir_for_user() helper, but this has a bug related to windows
acceptance (QENG-1108) in that it doesn't end up prepending a 'cmd.exe
/c' and we get pathing issues with our current acceptance setup on
windows.

Just switching back to using host.tmpdir calls for now; the original
changes were for jvm-puppet, but that is master only, and these are
agent calls.
Merge branch 'issue/master/pup-2999-agent-tmpdirs-on-windows'

* issue/master/pup-2999-agent-tmpdirs-on-windows:
  (PUP-2999) Use host.tmpdir for agent tmpdirs
Merge branch 'master' into puppet-4

* master:
  (PUP-2999) Use host.tmpdir for agent tmpdirs
  (maint) Clarify docs for certificate_status
  Changing don't to does not because grammar
  (PUP-2987) Restructure Windows service code
  (PUP-2987) Windows service runinterval parsing