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 without a completion block and not doing anything with it is pointless), a client passing a empty block is not informed about the mistake.

`NSParameterAssert` validates the input and it informs the client about bad usage of the API.