closed #2346: use shader program to set uniform
1. Add C++ code to decode ETC file
2. Configuration and function supportsETC()
change test case, all platform not can read pkm file
give Texture2D::_pixelFormat a default value in construction
Merge branch 'origin/develop'

Conflicts:
	cocos2dx/proj.ios/cocos2dx.xcodeproj/project.pbxproj
	cocos2dx/proj.win32/cocos2d.vcxproj.filters
adjust cocos2d.vcxproj.filters
LayerColor::initWithColor should return false when Layer::init() returns false.
Merge pull request #3049 from dumganhar/develop

LayerColor::initWithColor should return false when Layer::init() returns false.
issue #2328 refractor etc support:
1. GL_ETC1_RGB8_OES not defined will return not support hardware etc
2. remove some space and comments
issue #2328 refractor etc support:remove comments
Merge pull request #3048 from dabingnn/iss2328-refractor-etc

Iss2328 refractor etc
issue #2285: ccColor3B --> const ccColor3B& for MotionStreak::create.
issue #2285: Adding MotionStreak test for TestJavascript.
close #2285: Updating tools/tojs/cocos2d-x.ini.
issue #2285: New JS-test MotionStreak.
Updating bindings-generator.
Add CCRect::unionWithRect
Add a new CCRect utility function called 'unionWithRect' which computes the minimum rectangle that contains the current rectangle and another given rectangle, similar to to the following .NET function: http://msdn.microsoft.com/en-us/library/ms521839.aspx
Add ccDrawSolidCircle
Similar to ccDrawCircle() primitives drawing function except the circle is filled.
Bugfixes to the Set class.
1: If adding an object to the container then only retain the object again provided it's not already been added. The underlying std::set does not support duplicate entries. (see: www.cocos2d-x.org/boards/6/topics/10876)
2: When removing an object only CC_SAFE_RELEASE it if it was actually contained in the set. (see: http://www.cocos2d-x.org/boards/6/topics/10876)
3: Fix a bug in 'removeAllObjects' where the underlying std::set container was not being cleared. (see: https://github.com/cocos2d/cocos2d-x/issues/2283)
Add extra safety to selector casting macros
Use static_cast<> instead of C-Style casts in the callfunc0_selector() etc. series of macros as this will allow the compiler to perform more stringent error checking and catch out cases where incompatible function signatures are being casted. This helps prevent very subtle and difficult to track down bugs where the signature of the function being casted is not what Cocos2dx expect - which can cause strange things to happen and corrupt the current stack frame.