Fixes #2913 : Prevent extra serialization if there is no registered event listener

- Fixes https://github.com/hazelcast/hazelcast/issues/2913
- Includes some refactoring still needs some more.