Improve the Optimized Tick Loop patch

Improve the Optimized Tick Loop patch

Currently Thread.sleep() is undersleeping, causing the tick loop to loop around and sleep up to 10+ times per tick.
This is causing TPS loss and ineffeciency to the loop process.

The problem can be seen here: https://gist.github.com/aikar/bebc68a749713b04e1e6

By passing a max nanosecond remainder to .sleep(), the system will sleep for 1 millisecond more than needed
which will make it sleep enough in nearly all iterations, causing the system to only sleep once per tick if needed.

Additionally, the lastTick was being initialized to now, causing the server to essentially
wait for the first tick. Just set it to -1 tick to make first tick initiate immediately.

Then finally, increase the size of the catchup buffer so that lag spikes over 1 second do not cause TPS loss, giving
the server a fighting chance to keep 20 TPS.