Improve error handling & fix null pointer exceptions for login and graph...

I can crash on line 682 with:

```
var apiTest = function () { 
    facebookConnectPlugin.api( "me/?fields=blah", ["user_birthday"],
        function (response) { alert(JSON.stringify(response)) },
        function (response) { alert(JSON.stringify(response)) }); 
}
```

Stack:

```
10-02 11:23:25.101: W/ResourceType(28752): No package identifier when getting value for resource number 0x00000000
10-02 11:23:25.101: E/AndroidRuntime(28752): FATAL EXCEPTION: JavaBridge
10-02 11:23:25.101: E/AndroidRuntime(28752): Process: io.cordova.hellocordova, PID: 28752
10-02 11:23:25.101: E/AndroidRuntime(28752): android.content.res.Resources$NotFoundException: String resource ID #0x0
10-02 11:23:25.101: E/AndroidRuntime(28752): 	at android.content.res.Resources.getText(Resources.java:268)
10-02 11:23:25.101: E/AndroidRuntime(28752): 	at android.content.res.Resources.getString(Resources.java:354)
10-02 11:23:25.101: E/AndroidRuntime(28752): 	at org.apache.cordova.facebook.ConnectPlugin.getFacebookRequestErrorResponse(ConnectPlugin.java:682)
10-02 11:23:25.101: E/AndroidRuntime(28752): 	at org.apache.cordova.facebook.ConnectPlugin$11.onCompleted(ConnectPlugin.java:569)
10-02 11:23:25.101: E/AndroidRuntime(28752): 	at com.facebook.Request$4.run(Request.java:1726)
10-02 11:23:25.101: E/AndroidRuntime(28752): 	at android.os.Handler.handleCallback(Handler.java:738)
10-02 11:23:25.101: E/AndroidRuntime(28752): 	at android.os.Handler.dispatchMessage(Handler.java:95)
10-02 11:23:25.101: E/AndroidRuntime(28752): 	at android.os.Looper.loop(Looper.java:135)
10-02 11:23:25.101: E/AndroidRuntime(28752): 	at android.os.HandlerThread.run(HandlerThread.java:61)

```

This is also true for the FB Android SDK 3.18.1

`error.getUserActionMessageId()` is returning `0` which according to the SDK code is:

*FacebookRequestError.class*
```
private static final int INVALID_MESSAGE_ID = 0;
...
int messageId = INVALID_MESSAGE_ID;
        boolean shouldNotify = false;
        if (isLocalException) {
            errorCategory = Category.CLIENT;
            messageId = INVALID_MESSAGE_ID;
        } else {
...
```

A local error return `0`, for which there is no resource string. :(
We should check for `INVALID_MESSAGE_ID`.

Possible solution:

```
	public JSONObject getFacebookRequestErrorResponse(FacebookRequestError error) {
		int messageId = error.getUserActionMessageId();
		// Check for INVALID_MESSAGE_ID
		String errorUserMessage = "Invalid message Id";
		if (messageId != 0) {
			errorUserMessage = cordova.getActivity().getResources().getString(messageId);
		}

		String response = "{"
			+ "\"errorCode\": \"" + error.getErrorCode() + "\","
			+ "\"errorType\": \"" + error.getErrorType() + "\","
			+ "\"errorMessage\": \"" + error.getErrorMessage() + "\","
			+ "\"errorUserMessage\": \"" + errorUserMessage + "\""
			+ "}";
```