(#21749) Make attributes readable on Puppet::ModuleTool::Dependency

Make it possible to read the attributes of these objects
without turning them to PSON and parsing that back again.
(#11133) If a node definition uses a regex, make its capture variables available in the node's scope
(maint) Checks in a pair of useful dev tools

These are two scripts (not mine) which have been floating around, which
have proved useful for setting up a local puppet-master daemon for
testing, and for bisecting spec order failures.

I don't know that util is the best subdirectory for them to live in.
(#21831) Ensure SecureRandom.uuid is available

Background:
Ruby's stdlib includes SecureRandom.  As of 1.9.3 SecureRandom
includes a uuid method, which is essentially a convenience
wrapper around the base random number generation.  1.8.7 did not
provide the uuid method.

Changes:
- Monkey patch SecureRandom to add the uuid method if it's not there
 (copy-paste of the code from 1.9.3)
- Add test to verify that there is a uuid method and that it returns a
  properly formatted uuid string.
(#21831) Generate a UUID to allow matching a report to a catalog

In Puppet::Configurer, generate a 'transaction_uuid' using SecureRandom.uuid.
For the catalog retrieval, pass that uuid into the 'fact_options' hash which
generates the query string for the catalog request.  For the report, set the
report's variable, also named 'transaction_uuid,' and serialize that to_pson.

Also:
- In configurer.rb, rename fact_options to query_options since the hash ends
  up including more than just the facts.
- Add spec tests for transaction uuid modelled on those for configuration version
(maint) Clarify comments and link to puppet-master issue
(#21831) Add/use get_transaction_uuid method

Rather than inline insertion of the transaction uuid, factor
out a method, get_transaction_uuid, which returns a hash containing
the transaction_uuid and merge that into the catalog query_options
hash.
Merge pull request #1793 'kylog/issues/master/21831-txn-uuid'

* kylog/issues/master/21831-txn-uuid:
  (#21831) Add/use get_transaction_uuid method
  (#21831) Generate a UUID to allow matching a report to a catalog
  (#21831) Ensure SecureRandom.uuid is available
(doc) Fix YARD output

Removed comments before any declaration of 'module Puppet' so that only the
one in lib/puppet.rb would be used by YARD.
(doc) Notes on curl with dev-puppet-master script

And a change to dev-puppet-master to automatically copy auth.conf if not
already present.
Deserialize time in Status objects the same way as everywhere else

In other classes when initializing from a hash we allow time to be either a
string or a time object. This makes it work with both YAML and PSON. This
fixes this for Puppet::Resource::Status.
Merge pull request #1784 from nhemingway/bug_11133_node_regex_captures

(#11133) If a node definition uses a regex, make its capture variables a...
Merge pull request #1767 from dalen/moduletool_dependency_attrs

(#21749) Make attributes readable on Puppet::ModuleTool::Dependency
(#21947) Add missing error message for ILLEGAL_NAME

The faulty behavior was triggered by interpolation of an illegal name.
e.g. "Contains $CONTRABAND".
Merge pull request #1804 from hlindberg/issues/issue-21947

(#21947) Add missing error message for ILLEGAL_NAME
Merge pull request #1788 from jpartlow/feature/master/utility-scripts

(maint) Checks in a pair of useful dev tools
(#18508) Specify the order of resources in the catalog

This adds a specification to the order in which resources appear in the
catalog. They must appear in the order in which they are added to the
catalog.

In order to make this kind of assertion easier this commit also brings
in Ramcrest.
(#18508) Preserve order of insertion for resources

The order that resources are added into the catalog is needed in order
to ensure a less surprising order when applying resources on the agent.
This ensures that the order that resources are transmitted to the agent
preserves that insertion order.
(Maint) Remove unneeded array code in type

Iteration across an array with only one element isn't needed. Just
flatten it out and make it simpler.
(Maint) Remove unnecessary alias in Component.new

From our understanding, any resource alias should already exist at this point.