(PUP-2401) Add ssh_authorized_key acceptance tests

Add basic acceptance tests for ssh_authorized_key type.
This adds acceptance tests for create, query, modify, and destroy.

The query test is set to be skipped because the type cannot
currently be queried by username (see PUP-1605).
(PUP-1057) Remove the function stubs for collect and select

These functions are just stubs that raises an error, and they are
no longer needed.
(maint) Fix typo in yardoc
(PUP-2557) Add deprecation of node inheritance

This makes a deprecation warning being logged whenever a
node is instantiated with a parent in 3x, and a warning is issued
during validation of the source text when future parser is used.

The intent is to remove the support for node inheritance in
Puppet 4.0.0.
(maint) Fix a typo in reserved word symbol
(PUP-2755) Move iterative functions to the new API

This moves all the iterative functions to the 4x function API.
Functions are now simpler to read. A shared utility module
was created for repeated asserts.

While testing it was clear that it is difficult to use
Puppet.lookup(:loaders), and the evaluator was changed to get the
loaders via the compiler instead.

The evaluator tests are changed to make use of the simplified
handling of the loaders.

The tests for the functions that have moved, were also moved, but
are unchanged in what they test.
(maint) Add leaky local scope tests

This adds tests that local and match scope handling is corrent
and does not leak variable bindings.
(PUP-2755) Fix issues after changes from PUP-514

This fixes merge issues that were not automatically done due to files
being moved and changed structurally.

The support for captures_rest was lost. This is now reinstated in
the shared IterativeSupport module and in reduce and slice where the
semantics of "serving_size" are slightly different.
Merge pull request #2604 from johnduarte/pup-2401-ssh_authorized_key-acceptance

(PUP-2401) Add ssh_authorized_key acceptance tests
(PUP-2557) Issue deprecation warning for AST::Node inheritance

Puppet.deprecation_warning constructs an internal stack trace and is
mostly useful for internal deprecation notices as opposed to notices of
deprecation in Puppet manifests. Because of this, a regular warning was
being used in its place for the node inheritance deprecation. But this
would bypass limits on deprecation warnings and the ability to suppress
deprecation warnings added in PUP-2650.

This commit adds a puppet_deprecation_warning() which shares code now
with deprecation_warning, and which traces to the file and line of the
node's context. The AST::Node inheritance warning uses this method now.
(maint) Disable future parser warnings based on :disable_warnings

Work on PUP-2650 missed that the future parser has a separate method of
handling deprecation warnings. This changes IssueReporter to muzzle
deprecations when 'deprecations' is in Puppet[:disable_warnings].  It
also adjusts the max_warnings/deprecations counts to be one-based, so a
setting of Puppet[:max_warnings] = 4 emits at most 4 warnings per
manifest from future parser.  A setting of 0 blocks the warnings
altogether.

Adds specs for the current behavior.
(maint) Refactor EvaluatingParser to use IssueReporter

There was some older code in the EvaluatingParser for logging
warnings/errors which duplicated the Puppet::Pops::IssueReporter.
This just refactors Puppet::Pops::Parser::EvaluatingParser to use the
IssueReporter directly.
Merge pull request #2777 from jpartlow/issue/master/pup-2557-deprecate-and-remove-node-inheritence

Issue/master/pup 2557 deprecate and remove node inheritence
(maint) Add doc stub for 4x function assert_type
(maint) Add 3x function doc stub for 4x function each
(maint) Add 3x function doc stub for 4x function filter
(maint) Add 3x doc function stub for 4x function map
(maint) Add 3x function doc stub for 4x function match
(maint) Add 3x function doc stub for 4x function reduce
(maint) Add 3x function doc stub for 4x function slice