Add cocos2d::RefPtr<T>
This class which acts a smart pointer type class for cocos2d::Ref objects. Can be used to help automate memory management and remove manual retain/release calls from code, resulting in less code and less chance of errors. Also useful to implement the RAII idiom in certain scenarios, ensuring that an object gets released upon exiting a scope.
Fix Android build for RefPtr addition.
Merge the alternate RefPtr<T> implementation
Merge in the version at: https://github.com/DarraghCoy/cocos2d-x/blob/add_refptr_class_alt_impl/cocos/base/CCRefPtr.h
This version sacrifices the ability to use forward references in some places in return for added type safety and ensures we can never assign a non cocos2d::Ref derived object to the pointer.
Revert "Fix Android build for RefPtr addition."

This reverts commit 8945d1c4dc99236c52f1ee52343bd32906cccdc7.
Whoops... Shouldn't remove the test cpp.
RefPtr<T> - add move semantics
Add support for move semantics to the RefPtr<T> class. Implement a move constructor and a move assignment operator.
Convert tabs to spaces
Add in missing template parameter in function arg.
Attempt to fix the linux build.
Fix win32 build
Merge commit 'refs/pull/6012/head' of git://github.com/cocos2d/cocos2d-x into pull/6012

Conflicts:
	build/cocos2d_libs.xcodeproj/project.pbxproj
Merge pull request #6365 from dumganhar/pull/6012

Merge PR #6012: Add cocos2d::RefPtr<T>