(pup-546) Remove hiera2 support from binder

This removes hiera2 support from binder.
Tests are updated to use ruby based bindings for the same data bindings
as the removed hiera2 based bindings.
(pup-546) Remove automatic injector lookup for class parameters.
(pup-546) Remove hiera2.rb (central file with require's for hiera2)
(pup-546) Update default.rb and remove mention of hiera2

The documentation for the --binder setting is updated to reflect
that hiera2-data-in-modules is no longer loaded, while still allowing
bindings to be made in ruby, now referred to as "bindings in modules".
(PUP-546) Replace lookup function with something useful

With removed hiera2, the lookup function is not as useful and is
now replaced with the lookup from (#22574) which first looks in
bound data and then in hiera.

The intent is to use the technolgy agnostic "lookup" in the future
parser/evaluator to enable shorthand notation. The actual lookup
mechanism/technology is thereby not visible to the user.
(PUP-546) Fix problems with lookup after removal of hiera2

Moved lookup functionality to separate helper class.
Add vagrant testing guide to acceptance/README.

Point to the acceptance/README in the README_DEVELOPER, and also update
the README_DEVELOPER to refer to beaker rather than the now-deprecated
puppet-acceptance.
(#23343) Use `replace_file` to update a file's contents

The previous code had an unsafe use of temp files by looking for a name
it can use in a directory and then later opening the file and writing to
it. An attacker could, through some lucky timing and good access, make
the selected name a symlink to another file and thereby cause puppet to
overwrite something that it did not intend to.

The temporary file is used to make the file update atomic and also to
check that the contents have been written correctly. This updates the
file type to use the Puppet::Util#replace_file method to do a safe,
atomic, content swap. Since replace_file requires a mode to be provided,
the code was also updated to use the assumed default of 0644, which is
used when figuring out the absolute mode integer from symbolic modes.

In order to get this change to work on windows, there were a few
modifications that needed to be made as well:

 - New file must have binmode set to generate checksums
   appropriately across operating sytems that results from newline
   differences
 - replace_file has been adjusted so that passing a mode is now
   optional, and mode is only applied when the passed value is not nil
 - Windows code has been cleaned up / refactored to reduce unnecessary
   confusing code paths.  The simple mechanism for ensuring Windows
   ReplaceFile will always succeed is to first create a file by
   touching it (yielding default permissions) if it does not yet exist.
 - New integration tests assert that replace_file behaves properly on
   Windows, and the == operator was implemented on access_control_list
   for the sake of test clarity
 - replace_file is now allowed to take a nil `default_mode` so that when
   the file type is not attempting to manage the mode of the file we
   will end up with the system default.
(PUP-1246) Fixed hiding error details in fileserver.conf parser

This patch fixes wrong parser behavior in case when fileserver.conf
contains some broken lines. It helps to debug configuration problems
and makes puppet's user life a little bit easier.

Also added 2 unit tests for validating these buggy cases.
(packaging) Update PUPPETVERSION to 3.4.1
(PUP-1246) Update tests to show line numbers

The previous tests didn't check that the correct line number was being
reported. This updates the checks so that we can verify the line number.
Merge branch 'drednout-master'

* drednout-master:
  (PUP-1246) Update tests to show line numbers
  (PUP-1246) Fixed hiding error details in fileserver.conf parser

Closes GH-2185
Merge pull request #2177 from aperiodic/acceptance-docs

Add guide to running local acceptance tests.
Merge tag '3.4.1' into stable

3.4.1

* tag '3.4.1':
  (packaging) Update PUPPETVERSION to 3.4.1
  (#23343) Use `replace_file` to update a file's contents
Merge branch 'stable'

* stable:
  (packaging) Update PUPPETVERSION to 3.4.1
  (#23343) Use `replace_file` to update a file's contents
(maint) Fix rdoc generator for Ruby 2.1.0

Ruby 2.1.0 includes RDoc 4.1.0 which added a requirement that
subclasses of ClassModule implement 'add_prefix'. This requirement
was added in this commit:

https://github.com/rdoc/rdoc/commit/1701151b5b14cd20d624c4ce75fd61cc60cd07f3

The rdoc docs for other classes mention that aref_prefix should be
implemented by subclasses, but generally a base class implementation is
provided.  The rdoc doc for ClassModule hasn't been updated to reflect
the new requirement.

This patch simply implements the 'aref_prefix' method.
(maint) Update test to work on non-UTF-8 systems

Not all systems run as UTF-8 (our solaris tests run as US-ASCII). In
those cases \xc2\xa0 (NO-BREAK SPACE) is not a valid character. This
causes the test to fail because of encoding problems. By using \x01 (a
control character) we can check the same scenario, but using a character
sequence that is valid in all of our setups.
Merge branch 'kylog-maint/fix_rdoc_spec_tests_for_mri_2_1_0'

* kylog-maint/fix_rdoc_spec_tests_for_mri_2_1_0:
  (maint) Fix rdoc generator for Ruby 2.1.0
Merge pull request #2188 from hlindberg/pup-546_remove-hiera2-data-in-modules

(PUP-546) remove hiera2 part of data in modules