Remove unnecessary "MediaWords::Util::Bitly::" prefix
When controversy starts / ends in the future, don't come up with an adjusted starting / ending timestamp in the "enqueue all controversy stories" Gearman worker because Gearman's job de-duplication would stop working that way (and we need Gearman to merge duplicate jobs because MineControversy just re-enqueues all controversy stories for reprocessing with Bit.ly); instead, come up with a starting / ending timestamp later (in the "FetchStoryStats" worker)
Add the exact URL that is being processed ('url' key) and the output of "/v3/link/info" call ('info' key) to the JSON output of Bit.ly stats collector subroutine
Expect Bit.ly rate limiting errors and retry every 10 minutes for 7 times when those happen; call fatal_error() (and exit() the script) when unrecoverable errors happen in order to prevent erroneous processing results