Issue/master/pup 2557 deprecate and remove node inheritence

Extends #2662 to ensure that the deprecation warning for node inheritance uses Puppets deprecation_warning code path so that it benefits from rate limiting and squelching.  Also fixes an oversight for PUP-2650 missing deprecation warnings emited by future parser, and refactors some duplicated error handling code in the future parser.

Future parser does not use Puppet.deprecation_warning, and I did not change that since the source tracing is handled differently, and I'm not sure if there will be further overhauls of warnings in 3.7 and 4.
same as above