Call failureBlock only upon failure

Ought `performRequest` call the `failBlock` when the request succeeds and `completeBlock` raises an exception? I tweaked it.

In block definitions you can skip the name for arguments passed to the block. Type alone is sufficient, e.g.
```objc
typedef void (^zkCompleteUserInfoBlock) (ZKUserInfo *);
```