Split AL state-related events from Leader vote outcomes.
Pull nested classes/interfaces out of Paxos for consistency's sake.
As listeners are never removed use CopyOnWriteArrayList for listeners

Were removal allowed, the potential for event delivery post removal might be less-pleasant from a user perspective.
Make Listener nicer with a better method name and some enum sugar now it doesn't have to be network friendly.