(maint) Update yumrepo inifile provider comments
(maint) expand yumrepo inifile inline documentation.
(PUP-2027) Use Callable in Function API

This changes the impl of the Function API to use the Callable type
instead of using a Tuple. This is in preparation for handling
blocks since a Callable type also encodes the functions requirement
regarding a trailing block (no-block, optional, required) and its type
signature.

This also moves the functionality to check argument compatibility to
the TypeCalculator. It now has a callable?(callable, args_type) since
this is different than assignable?
(PUP-2027) Support lambdas in 4x function API

* Adds ability to accept lambdas/blocks in the 4x function API
* Adds ability to define "last arg captures rest"
* Adds CallableSignature as API for information about a callable (was
  different for functions and lambdas earlier)
* Function and Closure now implements CallableSignature
* Refactoring of how evaluator calls functions (no need to assert
function exsistnce separately (just takes time to look up functions
twice).
* TypeCalculator can now infer Callable from Function and Closure
* TypeFactory supports creating Callable with a block type last
* Callable type is given convenience methods to get range of types and
  block (accepted, optional, required).
* Spec tests added for many additional examples (for blocks)
(PUP-2176) Change to correct evaluating parser for puppet function load

The PuppetFunctionInstantiator used the future parser for 3x.
(PUP-2176) Add validation of puppet function name (must be name spaced)

This adds validation in the 4x checker to flag puppet function
names that are not namespaced.
(PUP-2237) Improve puppet-mode indentation, XEmacs compatibility

Handle a closing brace followed by a comma, which is the end of a
selector inside a resource.  Keep indentation at the same level in
that case.

Correctly indent the line following an array ending with :, which
is an array of resource names at the start of a resource definition.

Restore proper indentation following a line with a closing paren
and opening brace.

Properly highlight the resource name when setting defaults for that
resource.

Also clean up some places where \( or \) was used in a string to
represent a literal paren.  The backslash is extraneous here and is
ignored, so omit it.

Fix compatibility with XEmacs.
(PUP-2237) Fix end of string in Emacs autoload for puppet-mode

Autoload file match patterns should end in \\' to match the actual
end of string, not $ to match end of line, just in case file names
contain newlines (not that this is horribly likely, but this is
Emacs best practice).
(PUP-2176) Make loading of puppet functions not nest under modulename

Before this fix, the puppet function loader:
* accepted puppet functions in the global name space
* mapped foo.pp request to <moduleroot>/functions/foo.pp
* mapped mymodule::foo.pp to <moduleroot>/functions/mymodule/foo.pp

Now:
* searches for global names will not find puppet functions.
* mymodule::foo.pp is mapped to <moduleroot>/functions/foo.pp

(requested name vs. actual name was already checked)
(PUP-2101) resource parser: add the resource name on the validation error message when using create_resources
(PUP-2190) Fix issue when there are no defaults (for meta params)

When looking up a metaparameter - Notify['foo'][tag], this failed
when no tags had been set. The same problem would occur for any
parameter that the resource api reported to be a vaid parameter but
for which asking for its default did not return a Parameter.
(PUP-2241) Simplify dispatching of logging functions

This uses a simpler dispatching mechanism. Not meaningful to test
against 0-infinity of Optional[Object].
Merge pull request #2507 from kylog/issue/pup-1932/systemd-reports-transient-services

(PUP-1932) Restrict systemd provider to manage file-based services
Reading even old sysconfig file

For compatibility reasons reading even the old sysconfig file although new one
overrides it. But people who have some interesting settings in the old
sysconfig file can still use them unless the are set to something else in the
new one.
Merge pull request #2510 from miska/master

Little bit of systemd unit files polishing
Merge pull request #2531 from hlindberg/pup-2176_restrict-puppet-functions-to-module-namespace

(PUP-2176) Restrict puppet functions to module namespace
(packaging) Update PUPPETVERSION to 3.5.1
Merge branch 'stable'

* stable:
  (packaging) Update PUPPETVERSION to 3.5.1
(PUP-2279) Add support for 'skip_if_unavailable' to `yumrepo`

As of Yum 3.2.26, Yum has had the ability to skip a defined repository
if unable to contact. Prior to this commit, there was no way to manage
this option on a repository configuration.

This commit adds support for the 'skip_if_unavailable' option to the
`yumrepo` core type.
(PUP-2279) Add tests for `yumrepo` type

This commit adds new spec tests for the 'skip_if_unavailable' property
supported by the `yumrepo` type.