(maint) Add ruby-augeas to Gemfile and Travis for more test coverage
(pup-954) Correct flaws in the Pattern Type implementation

* it used AND semantics instead of OR
* it did not accept a Pattern or Regexp as pattern parameter
* it was not assignable by an Enum with matching strings
(maint) Fix type calculations for Variant

Type calculations for variant were wrong (and one of the test
where also wrong).

This corrects the logic; when combining two variants, does types that
are assignable to one in the other are not included (the more general
"shadows" the more specific). Also, when calculating assignability
involving the Data type, a compatible variant must be considered equal;
a Data type is after all just a pre-packaged variant.
(pup-954) Fix issues with typesystem's handling of inference.

This adds additional inference methods:
* infer_generic - a non instance specific result
* infer_set - a non reducing/combining inference
* generalize! - changes instance specific to generic

This makes it possible to evaluate expressions like:
[1,a] =~ Array[Variant[Integer, String]]

This failed previously as the result was that Array[Literal] is
not assignable to either of the two more specific types.
(pup-954) Fix failing test for Ruby 1.8.7 (hash entry order)

One test relied on the order of hash elements which Ruby 1.8.7 does not
guarantee.
(PUP-992) Add support for Array as operand in relationships

This adds support for using Arrays with references as operands
in a relationship.
(PUP-994) Ensure relationship operands have uniq content

The relationship operands when containing duplicate entries
caused multiple relationships to be formed between the same entries.
Ensuring that input to the compiler is free of duplicates reduces the
amount of work at a later stage.
(#23373) Support selecting the section

The --section option to the subcommand now allows a specific section of
the configuration file to be manipulated.
(PUP-490) Remove partial import-support from future evaluator

The support is removed (basically a mapping of a function call
to the function "import" to a ImportExpression + removing tests.

The intermediate future parser is still using ImportExpression, so
model and related logic not changed, but marked with deprecation
and "to be removed in Puppet 4" (or whenever the intermediate parser
is removed from the code base).

The grammar/parser is modified, but this is only a removal of a comment.
(#23373) Have config parsing use IniFile's sections

Since the IniFile code now tracks the sections the config parsing can
utilize it and simplify its flow some
(#7659) Fix commentstack when parsing hashes

We need to pop from commentstack in the grammar whenever we parse a
hash; an LBRACE pushes to commentstack, yet an AST::ASTHash does not
have a doc string which would get the comment popped from the stack
again. This left an extra item on the commentstack which caused all
subsequent Lexer#getcomment to return "".

Make the test for "comments before statement" contain a more complex
example to demonstrate that nested comments should not be returned.
(#7659) add a test for puppetdoc in the presence of hash literals

Add a test to confirm the effect of the fix for a puppetdoc bug.
(#7659) add more tests for possible hash use syntaxes
Maint: Adjust wording and formatting of several settings, notably reports
(maint) Share common acceptance setup

There are several (three now with SetParser) setup steps which are the
same between git and package acceptance runs.  This commit shifts them
to a common dir and uses symlinks to reduce duplication.
(#23373) Provide a more structure config file parse

The previous parsing of the config file was a hierarchy of hashes, which
made it hard to discover what the parts were. This changes it to use a
more structured system and lays the groundwork for moving lookup
behavior elsewhere.
(PUP-490) Remove partial support for import (the sequel)

This also removes the parts that were first marked as deprecated
as they are actually unused.
Merge branch 'ticket/master/7659-puppet-docstring'

* ticket/master/7659-puppet-docstring:
  (#7659) add more tests for possible hash use syntaxes
  (#7659) add a test for puppetdoc in the presence of hash literals
  (#7659) Fix commentstack when parsing hashes

Closes GH-2056
(PUP-866) Deprecate Import

This deprecates the use of import.
A deprecation warning is generated with a URL to a link that in
turn points to the original Redmine issue.

A test is added.

Note this does not deprecate the underlying "import" mechanism as it is
used for all types of loading of manifests. The deprecation is for
the puppet language construct.
(#23403) 'autosign' setting should manage file parameters

Puppet settings of type :file can specify the owner, group, and mode of
the file specified by the setting, like so:

    [master]
    autosign = $confdir/autosign.conf { mode = 664, owner = service, group = service}

Commit bca628dc extracted the autosign setting validation to a setting
class but dropped the ability for file settings to be specified. This
commit resolves the issue by making the autosign setting inherit from
the file setting.