public class PriorityFirstEventListenerComparator
If one of the argument is instance of PriorityAwareEventListener and another isn't, it will always evaluate
a PriorityAwareEventListener as a greater.
If both eventListeners are instances of PriorityAwareEventListener it compares them using their comparator.
If none of them is PriorityAwareEventListener it will simply use hashcode