(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.