Improvements to how API requests work. Notable changes include:
One instance of APIRequestHandler per request category.
Make submitRequest have a synchronized block so the plugin isn't submitting requests of the same type at the same time if the API server won't allow it to (i.e it's not a premium server)

Signed-off-by: Ollie <dzineit@live.co.uk>