(PUP-3718) Make defined function handle qualified variable names

The defined function can answer if a variable is defined. There
were however no tests for qualified variable names. The implementation,
when given a qualified name simply tried to lookup the complete name
in its own scope which naturally failed.

This commit adds logic to check if a variable is qualified in the
Scope#exist? method, and then mimics the behavior of a variable
lookup by splitting the name, then looking up the class and its scope
and finally delegating the exist? call to that scope.

This is made somewhat complicated when testing due to the fact how
scopes are wired (to find other names scopes). The test that checks for
the existence of a top scope variable now sets this up as if the main
class (called '') had been evaluated.
(PUP-3680) Remove confusing convenience Hash[value-type]

In an attempt to be helpful, the type system offers a convenience
that if a Hash type is specified with one key, then this is taken
as being the type of the value (and the key type defaults to
Scalar).

In practice this proved to be confusing as it raises the question
about if it is the key type or the value type that is being
specified. Some users thought it was they key type, as that is
what they wanted control over, others thought it was the value type.

From a consistency standpoint (a Hash is a Collection), it could
be viewed as being a collection of Tuple[Key, Value], but implementing
that is not very helpful (it is just more to type). The best solution is
therefore to simply remove the convenience and require both Key and
Value type as a minimum. (This also removes the confusion over the error
if wanting to specify Hash[Value, 2,5] (which fails because 2 is not a
type). Now users have to specify the full type: Hash[Key, Value, 2, 5]
if they want to add min and max entries.
(PUP-1413) Add 'touch' command to Augeas provider

The touch command works like its POSIX namesake, only creating the node in
the Augeas tree when it doesn't already exist, and creating it with a NULL
value.  The behaviour is copied from augtool (augrun).
(PUP-3521) Fix Puppet's exception swallowing

Fix Puppet's exception swallowing by finding places where an
Exception is rescued and swallowed and making their rescues
more granular.
(PUP-3024) Add deltarpm_percentage and deltarpm_metadata_percentage to yumrepo

This patch adds deltarpm_percentage and deltarpm_metadata_percentage to the
yumrepo type.
(PUP-3240) Remove ignoreimport setting

The ignoreimport setting has played out its role since the
import function has been removed.
(maint) Remove obsolete and commented out spec tests for Rdoc support
Merge pull request #3361 from hlindberg/PUP-3680_remove-hash-type-only-value-param-convenience

(PUP-3680) Remove confusing convenience Hash[value-type]
(maint) use el 6 master for Solaris agent testing

Prior to this commit, we were using Solaris masters to test agent
acceptance. This commit standardizes our master platform for Solaris
agent testing to match that of our Windows agent testing.
(PUP-3736) Restart a service when the flags are modified
(PUP-3753) Improve performance of zfs checks.
(maint) Remove facts REST api docs

The 'facts' indirection was removed in commit 22f4e59 as part of
removing the inventory service (PUP-2560).

This commit removes the related REST API documentation.
Merge branch 'stable'
Merge pull request #3394 from rji/maint/stable/el6-masters-for-win-sol-agents

(maint) use el 6 master for Solaris agent testing
Merge branch 'stable'

Conflicts:
	acceptance/config/nodes/solaris10.yaml
	acceptance/config/nodes/solaris11.yaml
(PUP-3718) Make it clear that exist?(varname) returns boolean

There was a code path that did not ensure that that the return
from exist?(varname) was a boolean. Now a test is added, and nil
result is always turned into a boolean.

This is primarily done to ensure against leaking values / object
that could be considered thruthy if this code changes. (It would
be harmeless to return nil/false or true as the code stands now,
but this commit makes it explicit that a boolean result is expected.
Merge pull request #3403 from hlindberg/PUP-3240_remove-ignoreimport-setting

(PUP-3240) Remove ignoreimport setting
(maint) Reword debug message

When puppet autorequired a resource, its debug message used to say:

    Autorequiring File[/Users/josh/.puppet]

Commit b864bfbcd for PUP-3331 added the ability to define autobefore,
autonotify, and autosubscribe relationships, similar to autorequire. In
the process the debug message changed to support these other types of
relationships:

    Forming automation relationship of type <type> with File[/Users/josh/.puppet]

This commit changes the message to be more concise:

    Adding auto<type> relationship with File[/Users/josh/.puppet]
Merge pull request #3409 from joshcooper/maint/master/reword-autorelationship-message

(maint) Reword debug message.
Merge pull request #3408 from joshcooper/maint/master/remove-facts-api-docs

(maint) Remove facts REST api docs