Finally made timings accept "Callback style" reports, so plugins
can listen for when the report is done.
Added new Util interfaces, MessageCommandSender and BufferedCommandSender
This restores and improves using RCON to generate timings reports
I believe we are getting data corruption by doing it in the middle of the tick, as I was seeing
really odd reports from automated ones vs command ones.
This will break issueing timings over rcon single command mode and getting the report link in the response back
But I will try to restore that (and make RCON no longer cause spikes) soon.
Reports will still generate, just because its async, the RCON connection
will drop if not in terminal mode before its done.
Require user to confirm the timings reset, warning them that they should not be doing this.
Also require Timings to have ran for 3 minutes before allowing the report command.
Also require 1 minute intervals between reports to stop report spam.
This will drastically reduce file size on large servers and help
avoid the parser failing to load the report.
This will also reduce memory usage of timings data.
Importing the full library would double the jar size... its way too large.
So lets just import the basic int/long based collections to then use
to improve performance on these kind of collections.