(PUP-1451) Make SSL file permissions a bit more relaxed for public files
(PUP-1120) Make modes of public ssl directories explicit

Previously, the mode of the `certs`, `public_keys`, and
`certificate_requests` directories within the `ssl` directory was
unspecified. This means the actual mode depended on the umask of the
user that started puppet, and caused those directories to be created.

Since the information in these directories is intended to be public,
there is no harm in making the mode explicit 0755. This also matches
what I see when installing puppet from packages.
(PUP-1120) Be explicit about group for ssl directory

Previously, files and directories contained with the `ssl` directory
were inconsistent with respect to their `group`. For example, the
`certs` directory had group `root`, but files within it,
e.g. hostname.pem, had group `service`.

Commit c6846c2b updated the `hostprivkey` and `privatekeydir` settings
so that they are readable by the `service` group. This commit makes
the `service` group explicit for other files & directories in the
`ssl` directory.
(PUP-1120) Remove group write permission for ca settings

Previously, the `service` group was granted write permission for ca
related files, but that is not necessary and likely left over from a
time when puppet did not manage the group correctly for file settings.

This commit removes group write permission for ca settings.
(doc) Create a quickstart guide to get people going

The README_DEVELOPER document has become too long for many new
contributors to quickly get going. The setup instructions were hidding
far down inside the file and provided to many caveats for a quick setup.
This splits out that information, streamlines it to take an opinionated
stance on how to setup a development environment, and start the process
of creating a set of documents tightly tied to the puppet codebase.

This new docs area should be used for documents about developing on the
puppet codebase, documentation of internal architecture, and other
developer and development focussed documents.

This also moves the acceptance test documents to this new location.
(PUP-1029) Make the slice function use the common Enumeration support.

This adds use of the common Enumeration support to the slice function.
The documentation of the function is also updated.
(PUP-1029) Fix problem with class Enumerator btw. 1.8.7 and 1.9.3

The Enumerator class is in Enumerable::Enumerator in 1.8.7, and is
global from 1.9.3. 

This changes the tests to check if result responds to :next instead.
(doc) Extract sections of README_DEVELOPER

This pulls the various parts of README_DEVELOPER into individual files
and links to them from the docs/index.md. This should give us a place to
better organize these internal docs.
(doc) Remove remaining developer docs

The rest of the items in the developer docs (those not moved to the docs
directory) are of limited value. Instead of keeping these docs around
and having them fall out of date, they are just going to go away.
(doc) Explain some basics for profiling puppet

This doesn't make it all clear, but it should give a good starting point
for how you might go about profiling puppet.
Merge pull request #2314 from dalen/lambda_optional_param_count

(maint) Add optional_parameter_count method to Closure
(PUP-1574) Environment setting does not override apply/parser manifest

Both `puppet apply` and `puppet parser validate` were relying on the
legacy environment behavior to implicit draw in the setting of
Puppet[:manifest].  But the new directory environments do not pay
attention to Puppet[:manifest] and thus a call such as `puppet apply
foo.pp --environment dir_env` would not apply foo.pp if dir_env was in
the $environmentpath.

This change explicitly creates a new environment based off the currently
configured environment and overrides with the manifest this to be
applied or validated.
Merge pull request #2334 from jpartlow/issue/master/pup-1574-dir-envs-prevent-applying-cmdline-manifest

(PUP-1574) Environment setting does not override apply/parser manifest
(PUP-1029) Fix problem with Enumerator for String chars on Ruby 2.0.0

Ruby 2.0.0 does not return an Enumerator when calling String#chars,
instead an Array with the characters is returned.

Ruby 1.8.7 returns Enumerable::Enumerator, and 1.9.3 returns Enumerator.

Long live API stability !
Merge pull request #2332 from hlindberg/pup-1029_filter-function-serving-size

(PUP-1029) Make iterative functions more consistent
fix regular expression in ClassGen#is_constant_defined?
(PUP-1029) Make map function consistent with others

The map function only supported a single argument which made it
impossible to map based on index in an Array, and made in awkward
to map on only hash key or value.

Now the map function accepts either value (as before), or index/value,
or key/value (for hash).
Merge pull request #2337 from hlindberg/pup-1029_map-function-consistency

(PUP-1029) Make map function consistent with others
(PUP-1029) Update documentation of map function

Updates documentation of the map function to also show examples
of using index/value, key/value.
(PUP-753) Write a JMeter CSV log

This adds a JMeter format CSV log of the benchmark runs. This log will
allow us to track the performance over time via Jenkins and the
Performance plugin.