Upstream merge (we must go deeper) SpigotMC/Spigot@1e7bc383c3
No need to wait for the conversation to finish SpigotMC/Spigot@67b502b6f8
Allows us much greater control over the Spigot portion of the code and makes us more "proper" Credit to @Dmck2b for originally passing the idea along a while back