(PUP-2807) Add output of containing scope for log functions

The log functions in 3x outputs th name of the containing scope
(for notice etc.). The reimplemented methods for the 4x function API
did not include this behavior.

Now, the calling scope is passed to the Logging utility to be output
the same way as for 3x.
(PUP-2626) Allow module paths in file()

This modifies the file() function to accept module paths (like the
template() function) as well as fully qualified paths.

This makes it possible for modules that use the file() function
to be more portable, instead of being tied to a specific puppet
server configuration.

Example

with directory structure:

  /etc/puppet/modules/example
  ├── files
  │   └──file.ext
  ├── manifests
  │   └──init.pp
  └── templates
      └──template.erb

When the module path for files can be used instead of the absolute
path:

  file('example/file.ext') returns the same as
  file('/etc/puppet/modules/example/files/file.ext').

This is supposed to be like how template does module paths, where:

  template('example/template.erb') returns the same as
  template('/etc/puppet/modules/example/templates/template.erb')
(PUP-2626) Collapse file finding functions

The file finding function was split up in the same pattern as the
template finding function. This isn't really needed since the logic is
much simpler.
(maint) Update template to follow file methods

The template finding and file finding logic is very similar.
(maint) Clarify and correct method docs.

The method docs were a little bit wrong about what kinds of values will
be returned when. This tries to clean that up a bit and explain how the
methods work.
(PUP-2626) Update file() docs for new selector system

The docs for file() didn't use to say much about how it operated. This
updates the docs so that it makes clear what contents it will return and
how the given filenames are interpreted.
(maint) Remove pointless test

Testing that the function exists isn't really needed since the later
tests that actually use the function will find that fairly quickly.
Merge branch 'pr/2678'

* pr/2678:
  (maint) Remove pointless test
  (PUP-2626) Update file() docs for new selector system
  (maint) Clarify and correct method docs.
  (maint) Update template to follow file methods
  (PUP-2626) Collapse file finding functions
  (PUP-2626) Allow module paths in file()

Closes #2678
(doc) update acceptance_tests.md

Adding updated information and more help around getting setup properly to run
beaker locally.
Merge pull request #2865 from ferventcoder/maint/master/docs-acceptance

(doc) update acceptance_tests.md
(PUP-2883) Allow empty body in epp templates

This allows an epp body to be empty by making grammar accept an
empty list of statements. This avoids getting a cryptic error message
about "syntax error at end of file" when using parameters, but having no
body that produces output, or when having a completely empty template.
(PUP-2873) Reasonable default logdests for master

Commit a1dba44 removed a potentially duplicate log destination when
using `puppet master --compile`, but it also meant that `puppet master
--compile` would default to logging to syslog. This issue revealed other
issues, where running `puppet master --no-daemonize` would log to
syslog, but `puppet master --no-daemonize --verbose` would log to the
console. Inconsistencies like these could lead to very surprising
behavior for users.

This commit refactors the master logging to default to console when the
master is running in the foreground and to syslog when running in the
background. When a log destination is given with '--logdest' the default
log destination is ignored in preference of the explicit log
destination.
Merge pull request #2856 from adrienthebo/fix/master/pup-2873-better-master-logging

(GH-2873) Reasonable default logdests for master
Merge pull request #2792 from hlindberg/PUP-2807_log-containing-scope-name

(PUP-2807) Add output of containing scope for log functions
Merge pull request #2868 from hlindberg/PUP-2883_empty-epp-template

(PUP-2883) Allow empty body in epp templates
(PUP-2912) PMT Build symlink exception

Prior to this commit the build command would add symlinks to packages. This
can cause unexpected behavior when installed on a system.
This commit causes the build command to throw an error when it finds a symlink.
That should prevent new modules from being created with a symlink included.
(PE-2912) Error on symlink in module install

Prior to this commit when encountering a symlink in a module file during install,
the install would error out with No such file or directory - /path/to/symlink.
This is confusing and doesn't show what the problem actually is.
This commit modifies the installer behavior to check for any symlinks after the
module is extracted, give errors for each symlink it finds, and die. This will
hopefully help module authors track down the actual reason for the failed install
more easily.