Make dojo/on.emit return value more consistent, ticket #18420

This updates `dojo/on.emit` to return non-cancelable events from synthetic dispatch as occurs for DOM-based dispatch. There is a test in the incoming intern-based tests that demonstrates this issue (".emit return value"). Since `on.emit` is such a core API, this change needs more review before going in the toolkit.