add CCConosle [autotest run] command
fix windows compile error
Refactors Scheduler class.

* Timer is an abstract class now.
* Adds three new timers ( `TimerTargetSelector`, `TimerTargetCallback`, `TimerScriptHandler`) which are inherited from Timer.
* Adds new API 'scheduleCallback` / `unscheduleCallbackForKey', and callback's target could be any classes since we're using `void*` to identify target.
* `Scheduler::scheduleCallback` use `std::function`, therefore, it supports passing `lambda`, `member_function` and `global_function`.
* The old selector API is still kept since it's very useful when schedule callback is a member function, it doesn't need a `key` to identify the callback function. (+1 squashed commit)
* Adds relevant test cases.
closed #4160: Out of range exception in EventDispatcher
closed #4160: Adds test case for issue 4160.
Merge pull request #5503 from dumganhar/iss4160-out-of-range

closed #4160: Out of range exception in EventDispatcher
TimerTargetCallback::initWithLambda -> TimerTargetCallback::initWithCallback.
Merge pull request #5499 from heliclei/autotest-run

add CCConosle [autotest run] command
Update CHANGELOG [ci skip]
issue #4165: Scheduler::scheduleCallback -> Scheduler::schedule, Scheduler::scheduleSelector -> Scheduler::schedule. APIs are clear for c++ developers now.
closed #4165: Deprecates old methods: Scheduler::(un)scheduleSelector, Scheduler::isScheduleForTarget.
closed #4165: Updates comments.
Merge pull request #5500 from dumganhar/scheduler-refactor

closed #4165: Refactors Scheduler class.