fixed #1617: Some improvements for JS Bindings.
1) Changed cc.REPEAT_FOREVER = - 1 to cc.REPEAT_FOREVER = 0xffffffff
[Reason]: If cc.REPEAT_FOREVER = -1, it will be a very big double value after converting it to double by JS_ValueToNumber on android.
Then cast it to unsigned int, the value will be 0. The schedule will not be able to work.
I don't know why this occurs only on android.
[Solution]: Instead of passing -1 to it, I assign it with max value of unsigned int in c++.

2) Added two helper function, cc.ArrayGetIndexOfObject and cc.ArrayContainsObject.

3) Added JSScheduleWrapper::removeTargetForNativeNode to avoid memory leaks.

4) Improvments for JSTouchDelegate. Added four functions as follows:
// Set the touch delegate to map by using the key (pJSObj).
static void setDelegateForJSObject(JSObject* pJSObj, JSTouchDelegate* pDelegate);

// Get the touch delegate by the key (pJSObj).
static JSTouchDelegate* getDelegateForJSObject(JSObject* pJSObj);

// Remove the delegate by the key (pJSObj).
static void removeDelegateForJSObject(JSObject* pJSObj);

void unregisterTouchDelegate();
And exported cc.unregisterTouchDelegate(); to js.
Fix a memory leak for JSTouchDelegate by making it as an autorelease object.

5) Don't add js callback function to the reserved slot of object.
[Reason]: The target object may execute more than one schedule.
Therefore, previous js callback function will be replaced
by the current one. For example:

this.scheduleOnce(function() { temporary function 1 }, 0.5);
this.scheduleOnce(function() { temporary function 2 }, 0.5);

In this case, the temporary function 1 will be removed from reserved slot 0.
And temporary function 2 will be set to reserved slot 0 of this object.
If gc is triggered before the JSScheduleWrapper::scheduleFunc is invoked,
crash will happen. You could simply reproduce it by adding jsc.garbageCollect(); after scheduleOnce.
[Solution] Because one schedule corresponds to one JSScheduleWrapper, we root
the js callback function in JSScheduleWrapper::setJSCallbackFunc and unroot it
at the destructor of JSScheduleWrapper.
Updated the submodule of cocos2d-js-tests.
Merge pull request #1767 from dumganhar/gles20

Updated the submodule of cocos2d-js-tests.
Merge pull request #1764 from dumganhar/iss1617-js-improvements

fixed #1617: Some improvements for JS Bindings.
Moved the submodule of cocos2d-js-tests and renamed it to Shared.
Merge branch 'gles20' of https://github.com/cocos2d/cocos2d-x into iss1603-refactor-folder

Conflicts:
	samples/Javascript/Shared
issue #1603: Moved the position of some projects.
Updated android build files.
issue #1603:adjust samples directory

Signed-off-by: minggo <ming@cocos2d-x.org>
Merge branch 'iss1603-adjust-directory' of https://github.com/minggo/cocos2d-x into iss1603-refactor-folder
issue #1603:build CocosDragon ok on iOS and android
issue #1603:build MoonWarriors ok on iOS and android
Updated vs project configuration after adjusting directory.
issue #1603: Added libJSBinding project for win32 platform.
issue #1603: fixed some warnings.
issue #1603:make some samples build ok on iOS
issue #1603: fixed some warnings for liblua.vcxproj.
issue #1603: updated blackberry, linux, marmalade project configurations.
issue #1603: updated linux project configuration.
issue #1603:build ok on mac