Remove "utm_" and "ga_" parameters by prefix because there are (and could be) parameters that we don't know nothing about, e.g. "utm_nooverride"
Fix typo in comment
Reorder subroutines to better reflect how they're ordered elsewhere
Pass the types of Bit.ly stats to be fetched as an object to add some clarity
Move fetch_story_stats() and write_story_stats() to MediaWords::Util::Bitly so that they're globally available
Check if Bit.ly processing is enabled before continuing with write_story_stats()
Don't set the Data::Dumper indent level for the whole package
Add comments to the functions with usage examples
Fix typo in comment
Add helper subroutine story_is_processed() to check if Bit.ly stats have already been fetched for story
Make it the caller's problem to ensure that it's not overwriting an already present Bit.ly result stored in GridFS