Ensure commands are not ran async

Plugins calling Player.chat("/foo") or Server.dispatchCommand() could
trigger the server to execute a command while on another thread.

These commands would then process EXPECTING to be on the main thread, leaving to
very hard to trace concurrency issues.

This change will synchronize the command execution back to the main thread, causing a
big slowdown in execution but throwing an exception at same time to raise awareness
that it is happening so that plugin authors can fix their code to stop executing commands async.
Exterminate the chickeneer - EMC-610

Wipe out chickens when the Jockey is killed.
Add Async Chunk Load API
Mark Withers as Persistent

We don't want them despawning due to player range
Optimize Entity Removal

Removes un-needed iteration and lookup
remove entity list guarding

this likely affects JVM optimizations
Customize Log4J, use Async Logging

Switch to Async logging
Disruptor is needed to make all logs async
Remove unnecessary WorldAccess iteration
Store proper position for vehicles

Vehicles could end up saved in a different chunk than their Passenger due to the method that
moves the entities from 1 chunk not being called yet (during tick).

If the passenger is being saved, ensure the vehicle is saved with the same x/z coordinate.