(maint) Correct ssl/puppet_cert_generate_and_autosign test to do what it says it's doing.

Prior to this commit, the test was incorrectly specifying autosign=false
when attempting to test the behavior when autosign is true. This looks
like a simple copy-paste error as the test right above is exactly the
same. This commit correctly specifies the autosign value.
(PUP-1177) allow parsedfile providers to choose a default mode

The ParsedFile provider baseclass and its companion Util::FileType module
employ Tempfile for pre-buffering generated files. If there is no actual
file at the final desination yet, copying the tempfile will preserve its
permissions, which implies a mode of 0600.

This is not desirable for all files managed by ParsedFile providers. Therefor,
the ParsedFile provider baseclass now provides an interface to change this
default mode by overriding a method.
(maint) move the file mode tests to the files spec module

It is helpful to have a simple helper method to match desired file modes
from spec tests.
(PUP-1177) make sure ssh_known_hosts is not created with mode 0600

The default mode for files that a ParsedFile provider newly creates
is 0600. This makes no sense for the ssh_known_hosts file, because it
contains public information that adds to security for all users.
(PUP-1177) update ParsedFile provider unit tests

The constructor for the :flat filetype accepts a second argument now.
This second argument must be taken into account when stubbing specific
invocations.
(PUP-1177) restore :ram FileType compatibility

The :ram filetype, as an alternative to :flat, is often used for spectests
of ParsedFile providers. The providers normally use the :flat type, but through
mocking, are made to use :ram in test context. Since the providers often pass
both supported arguments to the :flat constructor, it must be accepted by the
constructor of the :ram type as well.
(PUP-2079) Add no-op PMT generate template format.

Prior to this commit, the mechanisms available for writing skeletons containing ERB templates
were awkward at best (and broken at worst).

This change adds a new template extension for module skeletons that has the (somewhat counter-
intuitive, when described this way) behavior of performing no alterations to the given template.
In this way, one could place a file like `foo_bar.erb.template` in their module skeleton, and
generated modules would contain a file named `foo_bar.erb` with the exact contents of the
`.template` file.

This will also close pull requests #2468 and #2688.
(PUP-1811) Fix collection use of include?

The virtual resource collection uses the comparator for include?, but a
previous commit changed the signature. This wasn't caught until the
acceptance tests ran because it turns out that the collection tests were
not being run against the future parser.

This fixes the problem by passing the scope that is available for
collection to the method. It also removes two of the acceptance tests in
favor of adding a new integration test and running the collection tests
with the future parser.
(PUP-2869) Puppet should support HTTP proxy authentication

Without this patch it is not possible to use the Puppet Module
Tool (PMT) with an authenticated proxy.
Many enterprises utilise the services of authenticated proxies for
Internet access. Current code is able to utilise a proxy, but does
not consider credentials for authenticated proxies.
This patch uses the credentials from either the environment settings
for HTTP_PROXY or http_proxy, or the corresponding values in the
puppet.conf file.  The patch allows for http_proxy_user and
http_proxy_password to supplement the current http_proxy_host and
http_proxy_port variables within the puppet.conf.
Merge pull request #2826 from zaphod42/issue/master/pup-1811-resource-collection

(PUP-1811) Fix collection use of include?
Merge pull request #2759 from pvande/pup_2079-add-noop-template-to-pmt-skeletons

(PUP-2079) Add no-op PMT generate template format.
(PUP-1281) Don't use win32console if ruby v2

Some of this work was done with PUP-2777 (support bundler workflow). That limits
win32console down to being installed/depended upon only for ruby 1.x. This builds
on top of that to only setup functions for colorizing output when using Ruby 1.x
on Windows.
(PUP-2866) Read UID_MIN from login.defs instead of hardcoding value.

This change reads UID_MIN from /etc/login.defs, if present, for the
minimum non-system user id instead of simply hardcoding a value.  If the
file isn't present or UID_MIN isn't specified, we fall back to 1000 for
BSD family operating systems and 500 for all other operating systems.
Merge pull request #2679 from nwolfe/maint/master/correct-ssl-cert-generate-autosign-test

(maint) Correct ssl/puppet_cert_generate_and_autosign test to do what it...
Merge pull request #2817 from ferventcoder/ticket/master/PUP-1281-remove-win32console-gem-for-ruby2

(PUP-1281) Don't use win32console if ruby v2
(PUP-1283) Upgrade win32-service gem

This upgrades win32-service from 0.7.2 (native compiled gem) to
0.8.4 (FFI-ed gem), which is a step in getting puppet to run on x64
ruby.
(PUP-392) update win32-eventlog

This brings eventlog up to the latest gem and fixes the constants it uses.
(PUP-392) Upgrade win32-process

 - This upgrades the win32-process gem from 0.6.5 to 0.7.4.
 - Win32::Process wil not return a custom error anymore, just SystemCallError.
  Since this can be used for amny things, limit down SystemCallError to be
   rescued only if we are on Windows.
(doc) Fix "mangement" typo
Merge pull request #2832 from henriquer-noths/master

(doc) Fix "mangement" typo