enable to run on ruby 1.8.7 (el6)

Use case:

I'd like to use https://github.com/garethr/hiera-etcd to
provide an etcd backend for hiera on my puppetmaster.
But I must use RHEL 6.5, which only ships with ruby 1.8.7.

I'm aware of Software Collections on RHEL 6, but PuppetLabs
doesn't yet support software collections.
https://tickets.puppetlabs.com/browse/PUP-1112

I'd try to deploy puppetmaster on RHEL 7 (Ruby 2.x), but el7
doesn't have the passenger gem available yet.

Changes:

* Enforce ruby 1.8.7 hashrocket style and update via:
  `bundle exec rubocop --only='Style/HashSyntax' -a`

* Handle differences in net/http codebase between 1.8 and 1.9+

* On ruby 1.8, use posix-spawn in test harness

  > The posix-spawn library aims to implement a subset of the Ruby
  > 1.9 Process::spawn interface in a way that takes advantage of
  > fast process spawning interfaces when available and provides
  > sane fallbacks on systems that do not.

* Exclude rubocop and coco in bundle on ruby 1.8 to
  avoid pulling in deps like celluloid and rainbow.
gitignore downloaded etcd tarball and bin dir
resolve rubocop config changes in latest version

Resolves:

    AllCops/Includes was renamed to AllCops/Include

    Warning: Deprecated pattern style 'lib/**' in .rubocop.yml.
    Change to 'lib/**/*'
resolve rubocop failures in latest version
avoid deprecation warnings from rspec-mocks

Resolves:

    Using `any_instance` from rspec-mocks' old `:should` syntax without
    explicitly enabling the syntax is deprecated. Use the new `:expect`
    syntax or explicitly enable `:should` instead.

    Using `should` from rspec-expectations' old `:should` syntax
    without explicitly enabling the syntax is deprecated. Use the new
    `:expect` syntax or explicitly enable `:should` instead.