Add CURLMOPT_PIPELINE_POLICY_FUNCTION

Also adds CURLMOPT_PIPELINE_POLICY_DATA, CURL_SUPPORTS_PIPELINING,
CURL_BLACKLISTED, struct curl_pipeline_policy
and curl_pipeline_policy_callback

This allows the user to tweak the maximum number of connections
per host, the maximum number of requests in a pipeline and
to override blacklisting or implement whitelisting on a per
host basis (since bundles are only per host, not host:port - which
imho is a limitation). Finally they can cause libcurl to start
doing pipelining immediately instead after the first reply
is received.

Usage example:

curl_multi_setopt(multi_handle,
                  CURLMOPT_PIPELINE_POLICY_FUNCTION,
                  &pipeline_policy_callback);

void pipeline_policy_callback(
    char const* hostname,
    int port,
    curl_pipeline_policy* policy,
    void* userp)
{
  if(supports_pipelining(host))
    policy->flags |= CURL_SUPPORTS_PIPELINING;
  if(port == 80)
    policy->flags |= CURL_BLACKLISTED;
  if(host == "special.case" && port == 12340) {
    policy->flags &= ~CURL_BLACKLISTED;
    policy->max_pipeline_length = 100;
  }
  if((policy->flags & CURL_SUPPORTS_PIPELINING))
    policy->max_host_connections = 2;
}