(Maint) remove leftover api.rb and impl.rb for Pops

These are unnecessary after merging api and impl
(#11331) Allow parenthesized expressions in ifs

The construction
  if ($var) { ... }
resulted in an error during parsing. The error was
  Error: nil can't be coerced into Fixnum at ...
This was caused by a parenthesized expression not retaining any location
information. The grammar needs to retain the location information for
the resulting model.
Remove comment stack from the future parser's lexer

The lexer tracks comments in a stack. This code is error prone and broke when
introducing new language elements. For now we're going to remove it and only
use the current parser to get doc information.
Fix test for future parser in arithmetic operators

When checking whether concatenation is supported the check for the
Puppet[:parser] setting was wrong (checking for a symbol instead of array).
This caused concatenation to not be supported even with the future parser
enabled.
(Maint) Label non-word characters with 'a' in label provider

This restores the previous behavior of the LabelProvider to accept strings
beginning with non-word characters and prepend them with 'a'.
Merge pull request #1584 from puppetlabs/feature/master/future-parser

(#11331) A whole new parser and some iteration goodness
(maint) Do not turn off SELinux if it is already off

Without this patch the external CA acceptance tests is failing on EL
system which already have selinux turned off.  The `setenforce 0`
command returns nonzero when selinux is already disabled.  This patch
addresses the problem by only running `setenforce 0` if selinux is
enabled.
(maint) Fix undefined local variable error from afdddb8

Without this patch the acceptance tests fail to run because of an
undefined local variable.  My previous attempt to fix the acceptance
test caused this error because the variable was set inside of a closure
when the variable did not yet exist outside the closure.

This patch addresses the problem by defining the variable outside of the
closure so that the block references our own variable rather than
creating another one.
(Maint) Remove accidentally left in debug statement
(#20128) Improve dequeue example to represent two separate resources

The existing spec example for dequeuing events used a single resource and
self-refresh, which didn't accurately reflect the two resource layout in the
original issue #7165 where one resource notifies another.
(#20128) Handle event dequeues when target resource has no events registered

In the case where a resource triggers an event with invalidate_refreshes
enabled (i.e. a service starts), the dequeue process would attempt to
invalidate other events registered for this resource.  If no other
notifications had been received on the resource already, then the hash element
for the resource would be nil.  The resource would then fail:

  Error: /Stage[main]//Service[service]: Could not evaluate: undefined method `[]=' for nil:NilClass
Merge branch 'domcleal-tickets/master/20128-service-dequeue-nil'

* domcleal-tickets/master/20128-service-dequeue-nil:
  (#20128) Handle event dequeues when target resource has no events registered
  (#20128) Improve dequeue example to represent two separate resources

closes #1585
(#20136) Add include_private argument to Array#respond_to? monkey patch
Merge pull request #1586 from domcleal/tickets/master/20136-array-respond-to

(#20136) Add include_private argument to Array#respond_to? monkey patch
Merge pull request #1583 from ghoneycutt/tickets/master/20100_Modulefile_starts_at_0_1_0

Modulefile starts with version 0.1.0
Remove trailing whitespace in ext/debian/control
(#19138, #19109, #18985) Update debian ruby dependencies

Previously puppet depended on libaugeas-ruby1.9, which only exists for arm on
sid of debian. The intended dependency was libaugeas-ruby1.9.1, which is also
fulfilled by libaugeas-ruby. This commit updates the libaugeas dependency to
reflect the available packages.
(packaging) Reorder ruby dependencies

This commit reorders the ruby dependencies of Puppet, listing the generic
version agnostic package first, followed by a ruby 1.9.1 package, followed by a
ruby1.8 package.
(maint) Ensure results hash is defined for module install

If the puppet module tool attempted to install a module from the
filesystem that does not exist, it would raise an error before a
variable was defined that the ensure clause needed to modify. Doing so
would raise a NoMethodError on nil, which masked the underlying issue.
This commit defines the variable at the beginning of the method to
ensure that the ensure clause works as expected.
(maint) Update puppet module version in test

Commit 674e7d2 updates the puppet module tool to follow semver.org and
use '0.1.0' as the first revision of the module. Acceptance tests were
relying on the default version being '0.0.1' which meant that the
version change broke those tests. This commit updates the version used
in the tests to match.