Generic thread-safe ListenerSet that uses reflection and varargs to
call methods on the contained listeners.  Method lookups are cached
for performance.