Remove URI dependency and make HTTP dependency optional in Feed

This PR removes the dependency on `Zend\Uri`, and makes the dependency on `Zend\Http` optional in `Zend\Feed`.

`Zend\Feed` was using a small subset of the functionality of `Zend\Uri`, primarily related to ensuring we have a valid URI and/or absolute URI. This subset was ported into a component-specific implementation.

`Zend\Http` was already optional, as it was only being used by the `import()` method of `Zend\Feed\Reader\Reader`, and the `PubSubHubbub` (PuSH) subcomponent. `import()`, while it uses a variety of functionality from the `Http` component, is an optional path for consuming feeds. A new method, `importRemoteFeed()` was added, which accepts a string URI, and an HTTP client -- however, in this case, it is a component-specific client interface that is being typed. This allows bridging alternate HTTP client implementations for the purpose of using the Reader component.

Usage is:

```php
$feed = Reader::importRemoteFeed('http://example.com/feeds/reader.xml', $client);
```

The client interface looks like this:

```php
namespace Zend\Feed\Reader\Http;
interface ClientInterface
{
    public function get($uri); // should return a ResponseInterface instance
}
```

and the response interface is as follows:

```php
namespace Zend\Feed\Reader\Http;
interface ResponseInterface
{
    public function getStatusCode();
    public function getBody();
}
```

A simple example using Guzzle might look like:

```php
use Guzzle\Http\Client;
use Guzzle\Http\Message\Response;
use Zend\Feed\Reader\Http\ClientInterface;
use Zend\Feed\Reader\Http\ResponseInterface;
use Zend\Feed\Reader\Reader;

class GuzzleResponse implements ResponseInterface
{
    protected $response;

    public function __construct(Response $response)
    {
        $this->response = $response;
    }

    public function getStatusCode()
    {
        return $this->response->getStatusCode();
    }

    public function getBody()
    {
        return $this->response->getBody(true);
    }
}

class GuzzleClient
{
    protected $guzzle;

    public function __construct(Client $guzzle)
    {
        $this->guzzle = $guzzle;
    }

    public function get($uri)
    {
        $request  = $this->guzzle->get($uri);
        $response = $request->send();
        return new GuzzleResponse($response);
    }
}

$client = new GuzzleClient(new Client());
$feed   = Reader::importRemoteFeed('http://example.org/feed/reader.xml', $client);
```