(#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
(#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) Clarify a couple of comments under lib/puppet/

- 'should not be used in preference to' as 'should be avoided in favor of'
- '25K to 300 symbols to strings' as '25K symbols vs. 300 strings'
(maint) Various fixes (whitespace, etc)
(maint) Spelling fixes for code comments

'acutal' to 'actual'
'allowal' to 'allowable'
'cahe' to 'cache'
'corrosponding' to 'corresponding'
'dafault' to 'default'
'defauls' to 'defaults'
'defualts' to 'defaults'
'follwing' to 'following'
'manageing' to 'managing'
'managhome' to 'managehome'
'matchin' to 'matching'
'pupet' to 'puppet'
'repositry' to 'repository'
'terminii' to 'termini' (per Oxford, 'termini' or 'terminuses')
'ths' to 'this'
(maint) Typo fixes for code comments