improve event bubbling, bug workaround for interact events being called twice

 the global event manager can now receive Bukkit events that bubble up from child managers.

 All event managers can only call an instance of an event once. If the instance is called again, it is dropped.

 added (hopefully temporary) workaround for possible Minecraft/Spigot/Bukkit bug that is causing two different instances of an event to be called for a single player action.
store non repeating tasks so they can be disposed

prevents scheduled task from running after script is disposed
add AbstractSetMap
add WeakHashSetMap
refactor AbstractSetMap to SetMap
do not return null sets
fix concurrent modification exception
fix spawn location not always saved
remove static instance of global event manager

global event manager is now InternalEventManager and is retrieved via GenericsLib.getEventManager()
add InternalRegionManager

InternalRegionManager extends RegionManager and is now the global region manager
remove static getter from JailManager