Prevent CurlMultiConnection from over-riding curl options

Previously, the CurlMultiConnection would over-write the HTTP
GET method with POST if there was a request body.  This is incorrect behavior.
This patch removes that limitation.

It also adds a provision to allow completely arbitrary HTTP method defined
by the user, regardless of what the underlying Endpoint is supposed to use.
This can be enabled using curlOpts globally:

```
$params = array();
$params['connectionParams']['curlOpts'] = array(
   CURLOPT_CUSTOMREQUEST => "PATCH"
);
$client = new Elasticsearch\Client($params);
```

Which will change *all* HTTP methods to the configured method.  Or it can be done per-request:

```
$client = new Elasticsearch\Client();

$params = array(
  'index' => 'my_index',
  'type' => 'type',
  'body' => array( 'match_all' => array() ),
  'curlOpts' => array(
    CURLOPT_CUSTOMREQUEST => "PATCH"
  )
);
$response = $client->search($params);
```
Remove old tests that conflict with newer integration tests

These tests use "bad" ports, but due to the Jenkins randomization of ports, these can randomly fail
because the port is "good".  More importantly, theses are low-quality tests that don't provide much
value, so removing them is fine.