Clean up some bits of UIImageView+AFNetworking.m

The largest change was setting the underlying dispatch queue to not be the main thread, which should help make the UI feel buttery smooth.

Additionally:
1.  `-[NSMutableDictionary setValue:forKey:]` can handle the value being `nil` unlike `-setObject...`
2.  The static const char* keys seem needlessly verbose considering these are internal to the class(es) anyway
3.  I moved `[[UIImageView af_sharedImageCache] cacheImage:response forKey:key]` to the single standard completion block instead of that call being duplicated multiple times (and thus called multiple times)
4.  Lines 198/200/204 make use of the weakSelf/strongSelf semantic so that the UIImageView can safely dealloc when appropriate 
definitely an options; I felt it was more performant to not invoke the context switch (i.e. `dispatch_async`) until we're absolutely positive we're going to use the response image.

Imagine an image view that requests an image then gets reused and requests a new image.  When the first request returns it would switch over to the main thread only to realize it's image isn't needed anymore.