[CLIENT] Added auto-detection for Faraday adapter from loaded Rubygems

Given the importance of using persistent HTTP connections to Elasticsearch,
the default client configuration has a fairly poor performance.

Since Faraday, the "abstract" HTTP library used as the default transport implementation
comes with adapters for many high-performance libraries (eg. Patron or Typhoeus),
we should detect when a library like this is loaded, and use it as the HTTP "driver"
(adapter) automatically.

With this change, we're no longer forcing users to "configure" their client:
they simply `require` a high-performance HTTP library and it is used automatically.

Example (adapted from README):

    require 'patron'

    client = Elasticsearch::Client.new

    client.transport.connections.first.connection.builder.handlers
    # => [Faraday::Adapter::Patron]

    10.times do
      client.nodes.stats(metric: 'http')['nodes'].values.each do |n|
        puts "#{n['name']} : #{n['http']['total_opened']}"
      end
    end

    # => Stiletoo : 24
    # => Stiletoo : 24
    # => Stiletoo : 24
    # => ...

Of course, users can set a specific adapter when creating the client:

    client = Elasticsearch::Client.new adapter: :net_http_persistent

    client.transport.connections.first.connection.builder.handlers
    # => [Faraday::Adapter::NetHttpPersistent]

See the list of supported adapters for Faraday:

<https://github.com/lostisland/faraday/tree/master/lib/faraday/adapter>

Benchmarks show that Patron (a `libcurl` based client) performs quite exceptionally:

-------------------------------------------------------------------------------
Context: Net:HTTP should get the cluster info (5000x)
mean: 3.61ms | avg: 7.95ms | max: 1318.01ms
-------------------------------------------------------------------------------
Context: Patron should get the cluster info (5000x)
mean: 2.43ms | avg: 2.78ms | max: 48.08ms
-------------------------------------------------------------------------------
Context: Typhoeus should get the cluster info (5000x)
mean: 4.31ms | avg: 4.71ms | max: 50.78ms
-------------------------------------------------------------------------------

(Full benchmark/profile included in <https://github.com/elasticsearch/elasticsearch-ruby/blob/master/elasticsearch-transport/test/profile/client_benchmark_test.rb>)