Task 1-3 of the Puppet 4 API Project
Task 1
Add a Puppet 4 API feature flag - As much as possible, all code should be hidden behind this flag
Task 2
Load Puppet 4 API Functions but present them as Puppet 3 functions in the Sidecar Protocol. This preserves existing behaviour of the loading, but requires no changes to the language server itself
Task 3
Use Puppet Strings (YARD) to load Puppet 4 documentation - Puppet 4 API does not use dedicated doc parameters, instead all documentation is provided by YARD based comments, interpretted by the Puppet-Strings gem. Puppet Strings extends TARD to understand Puppet syntax