15547 : use a clean env for builtin check

solaris has /bin/cd as a command to ensure posix compatibility. So
we need to avoid using '/bin' in path if we want to ensure that we
are looking at shell builtin cd.
15547 : valid locales as sentinel and check

Using spurious values for LC_ALL and LANG values in solaris causes
some commands to barf. Since we are only checking for overrides, we
can aswell use a valid locale.
15547 : Add home environemnt to pkgutil

pkgutil expects home to be set when run as non-user. Add $HOME when
invoking pkgutil
(#15547) remove the spaec between method and ()
(Maint) Clarify which branches changes should be based on

Priror to this commit, CONTRIBUTING.md did not reflect our current
process in regards to where changes should be targeted. Now it is
clear on these issues so that it will be easier for community
members to target their submissions to the right location, and
prevent us from frequently having to kick back pull requests that
need to be rebased and retargeted.

<hailee@puppetlabs.com>
(Maint) Clarify that Redmine tickets are mandatory

Prior to this commit, it was unclear if it was required to have
a Redmine ticket before submitting a pull request. Now it is clear
that this is a requirement in order to help us keep track of
submissions.

Also add details about looking for already existing tickets that
are either duplicates or related. This should help with the issue
of having tons of tickets all related to one bigger issue which
cannot be tracked easily.

<hailee@puppetlabs.com>
(Maint) Be more honest about submission methods

While CONTRIBUTING.md makes it clear that GitHub is the best method
for submitting changes, it's important that we be honest about the
fact that Redmine and email patches have a tendency to get lost
(sometimes forever). Hopefuly this change will encourage people
even more to use GitHub as apposed to other methods of contributing.

<hailee@puppetlabs.com>
(#15676) Fix puppet module face SSL acceptance tests to use masters real hostname

Previously we had been using 'localhost' as the location of the master, which
is a dangerous assumption with systest, since the master may be located on
another host or 'localhost' may not give us the expected results.

This patch changes the usage of localhost to use the variable 'master' which
should point to the canonical hostname of the master each and every time.
(Maint) Remove some more ambiguity

Remove the pieces of the document that say we support email and
Redmine patches, instead of just saying that we strongly
discourage these. Also change the places where we say "we recommend"
when what we really mean is "we require". Lastly, make a few small
changes that were brought up on the PR.

<hailee@puppetlabs.com>
Update CONTRIBUTING.md
Merge pull request #966 from kbarber/ticket/3.x/15676-ssl_acceptance_test_uses_localhost

(#15676) Fix puppet module face SSL acceptance tests to use masters real hostname
(#15595) Offer better errors for certificate validation errors

The verify_callback callback gets an OpenSSL::SSL::SSLContext for each
certificate in the chain that's verified.  If the verification failed,
then SSL provides a nice error to the callback, but that error doesn't
appear in the subsequent OpenSSL::SSL::SSLError.

This patch uses a technique similar to that used for peer_certs to
collect those errors and then add them to the Puppet::Error message
later.

Remove the guess at the error (time sync).
updates as requested

* combine conditionals in verify_callback
* change formatting of verify errors
use error_message instead of error
(#15595) Clear up tests around ssl errors

The tests around the SSL errors had some unclear parts. They made it
look like the verify method was going to get an OpenSSL::SSL::SSLContext
where in reality it is provided an OpenSSL::X509::StoreContext. There
was also duplication between two tests that has been refactored out.
(#15666) Include downstream error when raising CommunicationsError exception

Previously we were seeing errors being returned in the acceptance framework,
when the puppet module face had problems but the existing error message is far
too generic to be used to understand the root cause of such problems.

This patch changes the read_response code and CommunicationsError exceptions so
that the underlying comms error message is exposed to the client. The generic
message has been kept, but a new line 'Details:' has been added that will
expose the underlying error.

This patch solves this problem by accepting the original exception that was
called, and using the message of that exception to describe the detail.

To make sure the generic error will catch and wrap the correct exceptions, we
have added a list of what we believe are the common exceptions that Net::HTTP
raises when remote or network problems occur. Other exceptions will continue to
be raised up to the face as per normal.

Test coverage has been added to make sure the exceptions behave as expected, as
this was lacking beforehand.
(#15595) Improve message on SSL errors

The wording on the error message added the text "verify error" in front
of the actual message. That text made for a somewhat confusing message.
This commit removes that text and so the reported error will simply be
"<message> for <subject>"
(#15547) mock of facter :operatingsystem pending

Unless we are able to mock the operating system Fact, we will not be
able to run all the mount parsing tests running on each platforms.

However this is not required. We could aswell run the platform specific
test on the specific platform. However this is not done at present.
We are just making it pending for solaris since other platforms pass.

for the mount_spec, the mocked operating system value is not reflected
in lib/puppet/provider/mount/parsed.rb needing @blockdevice to be passed
in even though we are impersonating as Darwin
Replace "the short version" with outline 

Previously, the short version/checklist at the beginning did not line
up with the rest of the document, and was presenting information in 
a confusing order. Now it reflects the way the information is organized
in the larger document, and serves as a good checklist for going through
the process. 
Merge branch 'runit' of https://github.com/vrthra/puppet into 3.x