(maint) Remove rake task to make the 3x grammar

This removes the rake task 'gen_parser' since what it performed
make on has been removed.
(maint) Update obsolete TODO comment referencing PUP-3274

This updates a TODO regarding close call's scope (removed), and
instead provides a short description of what the method does.
(PUP-1802) Update SHA to puppet_for_the_win

Updates SHA to puppet_for_the_win to incorporate fix to start service
directly with ruby.exe instead of using a wrapper. This avoids warnings
in the service control manager; see PUP-1802 for details.
Merge pull request #3330 from MikaelSmith/bug/master/PUP-1802-update-p4tw

(PUP-1802) Update SHA to puppet_for_the_win
(PUP-3274) Remove acceptance setup step to set parser

The old parser/evaluator have been removed, and there is no longer a
:parser setting and switch. The acceptance setup step which allowed the
setting of 'parser' in puppet.conf prior to a run is therefore obselete
and now being removed.
(PUP-3140) Include faulty number in Illegal Number Parser Error

Before this commit whenever an invalid number was found in a manifest
the lexer would raise an "Invalid Number" error without any context as
to what number was invalid. This commit changes the behavior to show
what number was an issue.
Merge pull request #3332 from demophoon/improve/master/pup-3140-error-illegal-number

(PUP-3140) Include faulty number in Illegal Number Parser Error
(maint) Do not add delivery domain to generated hosts

...unless it is missing. Earlier versions of Beaker, I believe, provided
a host name that was not an fqdn, and when our Rakefile was creating a
config to allow Beaker to be re-run against preserved hosts, it would
add the delivery domain. Now, hostnames are being found fully qualified
in the logs, and we need to only add the domain if the hostname is not
qualified.

This commit also refactors the code that releases vms to make use of the
internal vmpooler rather than relying on Beaker::VcloudPooled, whose
interface may change.
Merge pull request #3333 from jpartlow/issue/master/pup-3274-remove-set-parser-acceptance-step

(PUP-3274) Issue/master/pup 3274 remove set parser acceptance step
(PUP-2927) Enable Facter debugging with debug option.

Enabling Facter debugging when the debug option is given to Puppet.
(PUP-2927) Enable Facter stack traces with trace option.

Enabling Facter stack traces when the trace option is given to Puppet.
(PUP-2927) Route Facter logging through Puppet's log.

If using a recent version of Facter that supports Facter.on_message,
Puppet will now route Facter's logging through Puppet's log with a
source of "Facter".

This supresses Facter debug/warning message output in favor of letting
Puppet handle the messages.  This also results in Facter's logging
ending up in the report.
(maint) Replace Facter[].value calls with just Facter.value.

There are a few remaining Facter[:name].value calls remaining.
We use the shortcut method Facter.value throughout Puppet's source, so
removing these calls in favor of the simplier Facter.value call.
Merge pull request #3331 from peterhuene/pup/2927

(PUP-2927) Improve Facter logging integration.
(PUP-1640) Add technology agnostic way of plugging in data modules/env

This adds extension points for plugging in and specifying use of
an implementatio of a data provider for environment and for modules.
The implementation allows one provider per environment, and one per
module.

This only adds the mechanism - it is configured, but not yet used.
(PUP-1640) Add seting to opt in to an environment based data provider

This adds the setting :environment_data_provider which is the name of a
registered provider (values are 'none' or 'function' by default).
(PUP-1640) Add Data Providers for environment and modules

Includes tests that:

* assert that data from a module has lower precedence that data from
  an environment
* the function data mechanism works for both env and module
* the function data mechanism calls the expected functions
* the configuration of extensions allowing the specification of
  data mechanism works for env and module.
* the data functions must return hash