(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