closed #1690: Exposing 'cc.Control. addTargetWithActionForControlEvents' and 'cc.Control.removeTargetWithActionForControlEvents' to JS.

I used `JSB_PRECONDITION3` instead of `JSB_PRECONDITION2`.
`JSB_PRECONDITION3` will not report an error, it just returns a boolean value.

### WHY?

Consider these two interfaces in `Scale9Sprite`.
```
static Scale9Sprite* create(Rect capInsets, const char* file);
static Scale9Sprite* create(const char* file, Rect rect);
```
The two parameters swaps. Please review my comments in the generated codes:
```
If next line is invoked.
var sp = cc.Scale9Sprite.create("filename.png", cc.rect(10, 10, 40, 40));

There are two statements in js_cocos2dx_extension_Scale9Sprite_create with two arguments.

But the first one is checking for cc.Scale9Sprite.create( cc.rect(10, 10, 40, 40), "filename.png");
So it will fail in the first search, if the JS error is triggered, The logic of JS codes will be changed too.

JSBool js_cocos2dx_extension_Scale9Sprite_create(JSContext *cx, uint32_t argc, jsval *vp)
{
...
	do {
		if (argc == 2) {
			cocos2d::Rect arg0;
			ok &= jsval_to_ccrect(cx, argv[0], &arg0);  // Should not report a JS error by JS_ReportError. JSB_PRECONDITION2 uses JS_ReportError, it will trigger an error if jsval_to_XXX return false.
			if (!ok) { ok = JS_TRUE; break; }
			const char* arg1;
			std::string arg1_tmp; ok &= jsval_to_std_string(cx, argv[1], &arg1_tmp); arg1 = arg1_tmp.c_str();
			if (!ok) { ok = JS_TRUE; break; }
			cocos2d::extension::Scale9Sprite* ret = cocos2d::extension::Scale9Sprite::create(arg0, arg1);
			jsval jsret;
			do {
				if (ret) {
					js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::extension::Scale9Sprite>(cx, ret);
					jsret = OBJECT_TO_JSVAL(proxy->obj);
				} else {
					jsret = JSVAL_NULL;
				}
			} while (0);
			JS_SET_RVAL(cx, vp, jsret);
			return JS_TRUE;
		}
	} while (0);
	
	do {
		if (argc == 2) {
			const char* arg0;
			std::string arg0_tmp; ok &= jsval_to_std_string(cx, argv[0], &arg0_tmp); arg0 = arg0_tmp.c_str();
			if (!ok) { ok = JS_TRUE; break; }
			cocos2d::Rect arg1;
			ok &= jsval_to_ccrect(cx, argv[1], &arg1);
			if (!ok) { ok = JS_TRUE; break; }
			cocos2d::extension::Scale9Sprite* ret = cocos2d::extension::Scale9Sprite::create(arg0, arg1);
			jsval jsret;
			do {
				if (ret) {
					js_proxy_t *proxy = js_get_or_create_proxy<cocos2d::extension::Scale9Sprite>(cx, ret);
					jsret = OBJECT_TO_JSVAL(proxy->obj);
				} else {
					jsret = JSVAL_NULL;
				}
			} while (0);
			JS_SET_RVAL(cx, vp, jsret);
			return JS_TRUE;
		}
	} while (0);
...
}
```

### Summary
`jval_to_XXX` should not trigger a JS error.