Refactor core/on:

* Remove < IE9 cruft
* Refactor to be consistent and maintainable
* Utilise refactored DOM interface
Remane tests/config.intern.js to tests/config.js
Refactor core/async.

- Add has feature
- Use setImmediate for Node.js 0.10 and nextTick for !0.10
Remove unused variable from core/async