R7

Some of this may not look organized. I apologise because some code was lost so I've had to work backwards in order to properly commit this.
status page for new design
real new design
Move graph generation to the backend. The main initiative for this is to significantly decrease burden on MySQL.

With all data for servers in the last 30 minutes instead stored in the backend graphs should be generated significantly faster. The backend will not have to spam MySQL with thousands of queries per second once fully completed.
Implement more graphs and fix some counting bugs
Squished more bugs and finished all graphs except for Rank, Version Trends, and custom graphs.
don't store revision 0
Custom data aggregator for graph generation.

also for officialy pie graphs don't replace the last value
Generate rank graphs. All that is left is Version Trends.
Version Trends graph (renamed to Version Changes)
30 minute regen interval, minor fixes
Use String.valueOf instead of casting
server last send cache
better caching strategies: lowercase map keys; pre-load graphs on startup. Also explicitly check for column name before wasting a query that will fail
Optimize graph generation, squish bugs, and remove spammy output messages. Some code added by this is still a bit messy :-)
save qualified servers on graph gen completion also
Speed up graph generation by grouping together graphs. This is needed anyway since update is no longer being used. Also handle keeping track of server counts for each plugin after every graph gen
Global Stats graph: Use 1 aggregator so that graph can be properly merged
Fix auth mode not reporting Online mode servers. columnValue would resolve to 0 and thus not be counted :-)
Cleanup some of the code that needed to be reversed