Simplifying Producer and Consumer calls

Hello again.

I wrote some extensions to Producer and Consumer to allow calls like this:

```swift
imageDownloadManager
    .imageProducer(imageURL: imageURL)
    .deliverOn(MainScheduler())
    .next { image in
        cell.image = image
    }
    .error { error in
        cell.image = nil
    }
```

(The example above is based on a running code.)

What do you think?