Adding default argument support and some improvements

XXX `Please review and test it before merging` XXX

### Parsing default argument for cxx methods.

### Detecting the enumeration type which defined in cxx class.
### Renaming the config section:
 `base_objects` ~> `classes_have_no_parents`, it will be clearer what this section means since i added another section called `base_classes_to_skip`.
### Adding new config sections:

**base_classes_to_skip**: Like `CCObject`, lots of classes like `CCTextureCache`, `CCAnimationCache` are inheriting from `CCObject`. I want to make it just skip its parent if it was found. The different between `base_classes_to_skip` and `classes_have_no_parents` is that `classes_have_no_parents` will not to find its parents while `base_classes_to_skip` will find its parents and if one of its parents is like `CCObject`, it will skip `CCObject` just seems it has not found `CCObject`.

__script_control_cpp__ : Determining whether to use script object(js object) to control the lifecycle of native(cpp) object or the other way around.
This could be useful when developers want to bind their own class and also use the cocos2d-x bindings. Now the template will not produce the marco `COCOS2D_JAVASCRIPT`, instead, it uses `python variable` to achieve it.
<pre>
#ifdef COCOS2D_JAVASCRIPT -----> #if not $generator.script_control_cpp
</pre>

### Module support

If there are different modules need to be bound, it's hard to make the module js bindings glue file in separated files. To achieve that, we should not use make all bindings in just one big file(like cocos2dx.cpp). Developer just registers the module they want. For instance, you could refer to https://github.com/dumganhar/plugin-x/tree/master/jsbindings/auto .
I think in `cocos2d-x`, we should also separate `extension` bindings from `cocos2dx.cpp`.

Any suggestion will be appreciated. Thanks very much.