fix permission when re-logging the user with checkAuthorizationOnCompletion:

Previously the permissionGranted attribute was set only in userAuthorizationURLWithRequestToken:requestedPermission:. But this method is only called by the initial authorization procedure (where the user is asked for permission) initiated by beginAuthWithCallbackURL:permission:completion:. It is not called when using checkAuthorizationOnCompletion:.
This commit stores the grantedPermission attribute along with the auth token in the NSUserDefaults, and restores them when checkAuthorizationOnCompletion: succeeds.
setObject:forKey: looks a bit cleaner than setValue:forKey: when also using stringForKey: and objectForKey: and removeObjectForKey:
Fix potential crash in case auth token request fails.

Previously, the NSError generated by beginAuthWithCallbackURL:... if auth token or secret are missing sets the NSURLResponse object as NSLocalizedDescriptionKey. According to the docs, the object associated with NSLocalizedDescriptionKey must be a string. In particular, if you called -[NSError localizedDescription] on the object, a "unrecongnized selector 'length' sent to instance NSError" error occurred.

This commit sets a string containing a generic error message including HTTP status code as NSLocalizedDescriptionKey.
Merge branch 'fix-crash-on-auth-error'