Improved binary response handling for UIWebView extensions

This is a rewrite of pull request #1511. Same fixes, but now with more sophisticated handling of MIME-types where `operation.responseString` isn't `nil`. cc @kylef

I still haven't been able to get testing to work on my local machine, but have tested the MIME-handling parts in a personal ad-hoc commandline testing environment [here](https://github.com/JacobOscarson/objc-lab/blob/master/mimetyping.m), and sanity checked the changes in `loadRequest:progress:success:failure:` in our production app "Juntoo" as much as possible.