Make UIKit related method calls back on the main thread

UIKit calls should only happen on the main thread. This pull request is almost the same as:

https://github.com/rs/SDWebImage/pull/403

except it only captures sself as a strong reference if it needs to and it also fixes the same issue in: UIButton+WebCache