(PUP-2452) Refresh support for Package type

This is implemented behind a feature that each provider must
implement. It is intended to allow source distributions to
recompile packages on a notify or subscribe event.

It allows patterns like:

    package { "app-admin/nginx":
       ensure       => latest,
       hasreinstall => true,
       subscribe    => File['/path/to/nginx/compile/options'];
    }
(PUP-3010) Allow Upstart jobs on Amazon Linux
(PUP-3137) update doc for the user resource expiry parameter

This commit updates the documentation for the *expiry* parameter
for the 'user' resource type.

Prior to this commit, the documentation was worded incorrectly with
"does never expire" which has been updated to a more simply worded:
"If you want to ensure the user account never expires, ..."
(PUP-3126) upgrade win32-service to 0.8.6

This upgrades the win32-service gem to at least 0.8.6 to take advantage
of the fixes to the service gem. This change includes only the fixes that
we have already applied patches to in puppet-win32-ruby.
(maint) Remove SimpleGraph#dotty method

This method has never been used and really isn't the responsibility of
this code; if someone wants to use dotty then they can invoke dotty with
a dot graph themselves.
Merge branch 'pull/2869/head'

* pull/2869/head:
  (PUP-3010) Allow Upstart jobs on Amazon Linux
Merge pull request #3135 from adrienthebo/removal/master/simple-graph-dotty

(maint) Remove SimpleGraph#dotty method
(PUP-2452) has_reinstall -> reinstall_on_refresh

 - Update documentation per NickF
Merge pull request #3128 from ferventcoder/ticket/stable/PUP-3126-upgrade-win32-service

(PUP-3126) upgrade win32-service to 0.8.6
Merge pull request #3137 from Iristyle/tickets/master/PUP-2452-support-portage-refresh

(PUP-2452) Support package refresh
(PUP-3126) Bump vendored gem dependencies

Include win32-service 0.8.6 when building MSIs.
Merge pull request #3013 from casharma/bug/PUP-3137

(PUP-3137) update doc for the user resource expiry parameter
(PUP-3307) Remove 'rmdeps' param from Puppet::Type#remove

This commit removes the deprecated 'rmdeps' parameter from
the Puppet::Type#remove method.

This commit is part of the Puppet 4 code removal effort.
Merge pull request #3129 from whopper/pup-3307/remove-param-type

(PUP-3307) Remove 'rmdeps' param from Puppet::Type#remove
(PUP-2647) Report when password is changed

Previously, if Puppet changed the user's password, it would always
report that the password was created, instead of changed. This was because
the provider's `password` getter method returned :absent when the current
password didn't match the desired value.

This commit changes the windows user provider to return nil if the
passwords don't match. This will cause puppet to sync the passwords
and correctly report that the password was changed.
(PUP-3258) node exec indirector: default to environment, not its name

Nodes can be classified through a local executable that prints YAML with
a node specification. This is enabled through the node_terminus=exec option.
Since PUP-2519, this setting would break `puppet apply`. Trying to apply
any manifest would lead to Puppet applying the default environment's site
manifest instead.

The reason for this is that the node terminus will include the current
environment's name in the node lookup result. This in turn makes Puppet
look up the environment per name. This is not the desired behavior, because
Application::Apply performs the lookup and further operations with a localized
environment that overrides the site manifest.

Solved by including the current environment object in the returned node object
instead of its name.
(maint) reduce repitition in Application::Apply integration spec
(PUP-2350) Disallow non-string file modes

In Puppet 4.0 integers will be parsed more strictly, which means that
file modes like `644` will be octal 1204. The alternative to this is to
force file modes to be strings where they cannot be interpreted
incorrectly. PUP-2349 deprecated non-string modes; this commit removes
support for them entirely.
(docs) Move user-facing docs for reinstall_on_refresh into user-facing doc string

These docs, intended for users, were in a comment where only developers would
ever see them. This commit moves them into place so they'll appear in the type
reference, and restores the original developer-facing comment for the parameter.
(maint) Capture scripts used in pe-puppet acceptance jobs

These can be used (if edited) to run pe-puppet acceptance for manual
testing.