Decode images only up to a maximum size

Decoding very large images may lead to memory warnings or even crashes. This pull request introduces a new property `maxImageSize` on `SDImageCache` that is used for all image decoding operations. 

`[UImage +decodedImageWithImage:maxSize:]` will detect if the undecoded image's size exceeds the maximum  size, and scale it down, respecting the aspect ratio. Only if the image is downscaled, the context's interpolation quality is adjusted `CGContextSetInterpolationQuality(context, kCGInterpolationHigh)` to prevent staggering (see http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way/)