Adding a plugin verification system detecting common programmer errors

Initially we will detect plugins that attempt to register a listener in 
ProtocolLib without setting "depend" or "soft-depend".
Load at startup to stay compatible with startup plugins.

Earlier versions of ProtocolLib would in fact load at startup, but due
to an experimental change (ffd920e5b2157d1a9e2627d2ca7902b49cdf1302) -
where ProtocolLib injected code into DedicatedServerConnectionThread in
order to intercept pending connections - the load order had to be
set to world.

This injection was later removed, but the load order was never 
reinstated. This causes problems with plugins that load on startup, 
but also depend on ProtocolLib as load order trumpts dependency.

This change reintroduces startup load order.