Only forward assignable events to EventExecutor; Fixes BUKKIT-3487

When registering an event with the EventHandler annotation method an
anonymous EventExector is created that filters events from the
registration class's HandlerList.  This prevents an EventHandler method
from receiving an event it is not listening to.

This commit mirrors that EventExecutor wrapper approach by wrapping the
EventExecutor passed in with another EventExecutor which filters classes
the original EventExecutor did not register for.

[BUKKIT-3487](https://bukkit.atlassian.net/browse/BUKKIT-3487)