Don't send requests if every player was found in the global api cache
Correctly set the response code for the cached lookups and return the
error stream if the lookup failed
Don't try and re-set the global api cache on reload

Is means that once the api cache is enabled it can't be disabled by
reloading but reloading is broken anyway
Use a compile time sneaky throw hack.

Fixes maven compilation for dependants.
Fix a missed rename in WorldGenGroundBush
Improve the Optimized Tick Loop patch

Reworks the catch up system so that it is more reliable, and only kicks in at > 2ms.
Kicking in less makes the system useless as sleep() is not precise enough.

Due to the precision of .sleep(), the system would oversleep on many occasions, causing us to lose TPS.

Ideally, the catchup system would account for that, but at such low precision, all attempts to "catch up" are then lost
by the same .sleep precision cause.

Additionally, the lastTick was being initialized to now, causing the server to essentially
wait for the first tick. It is now set to -1 tick to make first tick initiate immediately.

Then I have also increased the size of the catchup buffer so it has a better chance at keeping 20 TPS longer term.

Then Finally, I have added a new Bukkit.spigot().getTPS(); API to expose the recentTPS the server is tracking, so
that plugins may access it for graphing.