Enforced presence of a completedBlock in downloadWithURL:options:progress:completed

This method bails out in case of a missing `completedBlock`. While this makes sense (downloading the image and not doing anything with it is pointless), a client passing a `nil` block is not informed about the mistake.

`NSParameterAssert` validates the input and informs the client about bad usage of the API.
This method is meant for downloading an image and doing something with it.
If nothing needs to happen when the download has finished, it means you should be using `SDWebImagePrefetcher` instead.