Faster api calls for yearly top and slightly slower for monthly top

Also, implemented a check for rate limit exceeded in the last.fm module
and a bit of code cleanup.