Returning error in setImage completedBlock if the url was nil. Added `dispatch_main_async_safe` macro. Fixes #505