MOBILESDK-31 (iOS) Renamed handleServerException by handleServerResponse because in fact it handles the response with exceptions but also without them

Pretty big PR. It contains changes in handleServerException to make sure all kind of errors return a consistent NSError object.
NSError should contain:
  - domain: same for all
  - code: different for each kind of error
  - user description (in userInfo): user-oriented message, from the response (if available) or hardcoded
  - failure reason (in userInfo): it's the exception's classname from the response (if available) or a reverse-dns identifier 

Once you push this PR, I'll do the changes in Android. And next, make sure all messages are i18n-ed.