(#18494) Change version comparisons to support Ruby 2.0

Ruby version comparisons should treat Ruby 1.8 as the exception and Ruby 1.9
onwards as the norm.
(#18494) Fix Ruby version number format for Ruby 2.0.0-p-1

The additional hyphen between "p" and the patch number is now handled.
(#18494) Fix error message test for Ruby 2.0
(#18494) Remove TypeError handling code used for tests

For Ruby 1.9, commit 252c884 added code in the Puppet::Transaction::Event
class to handle strings rather than a resource object that responded to []
with symbols, for the purposes of testing.

In Ruby 2.0, the TypeError message changed a bit, so the rescue didn't work as
expected.  This is now reworked so the test passes in an object that responds
appropriately.
(#18494) Force literal strings in test to ASCII-8BIT encoding

The CA and directory service tests compare literal strings in the tests
against ASCII-8BIT data from the app.  The default file encoding changed to
UTF-8 in Ruby 2.0.0-rc2, so force file encoding to ASCII-8BIT to match the
app's expected output.
(#18494) Make ActiveRecord-based inventory service unsupported under Ruby 2

ActiveRecord 3.0 under Ruby 2.0 has spec failures both here and upstream, and
isn't supported anyhow.  Disable the ActiveRecord-based inventory service when
running under Ruby 2.

  2) Puppet::Node::Facts::InventoryActiveRecord#save should retry on ActiveRecord error
     Failure/Error: Puppet::Node::Facts.indirection.save(facts)
     NoMethodError:
       undefined method `insert_record' for #<Array:0x0000001950d3b8>
     # ./lib/puppet/indirector/facts/inventory_active_record.rb:40:in `block (2 levels) in save'
     # ./lib/puppet/indirector/facts/inventory_active_record.rb:32:in `block in save'
     # ./lib/puppet/util/retryaction.rb:21:in `retry_action'
     # ./lib/puppet/indirector/facts/inventory_active_record.rb:27:in `save'
     # ./lib/puppet/indirector/indirection.rb:266:in `save'
     # ./lib/puppet/node/facts.rb:20:in `save'
     # ./spec/unit/indirector/facts/inventory_active_record_spec.rb:43:in `block (3 levels) in <top (required)>'
(#18494) Enable Travis building on Ruby 2.0.0
(#18494) Rearrange loop to remove Ruby 2.0 warning

Ruby 2.0 warned of the complex assignments in the while loop:

  lib/puppet/file_serving/fileset.rb:139: warning: found = in conditional, should be ==

The block that shifts to the next recursion level has been removed from the
loop expression to prevent the interpreter from warning.
Merge branch 'domcleal-tickets/master/18494-ruby-2.0'

* domcleal-tickets/master/18494-ruby-2.0:
  (#18494) Rearrange loop to remove Ruby 2.0 warning
  (#18494) Enable Travis building on Ruby 2.0.0
  (#18494) Make ActiveRecord-based inventory service unsupported under Ruby 2
  (#18494) Force literal strings in test to ASCII-8BIT encoding
  (#18494) Remove TypeError handling code used for tests
  (#18494) Fix error message test for Ruby 2.0
  (#18494) Fix Ruby version number format for Ruby 2.0.0-p-1
  (#18494) Change version comparisons to support Ruby 2.0

closes #1470