(PP-153) Ensure SecureRandom.uuid is available

Background:
Ruby's stdlib includes SecureRandom.  In 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 1.8 to add the uuid method (copy-paste of the code from 1.9.3)
- Add tests to verify that there is a uuid method and that it returns a
  properly formatted uuid string.
(PP-153) 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