Move encode_json() and decode_json() to a separate helper package so that the rest of the code (e.g. Bit.ly worker) can use it too
Verify that the returned stats is a hashref
Make it possible to enable / disable Bit.ly processing (default is disabled)
Add subroutine to check if Bit.ly processing is enabled
Move URL-related subroutines to MediaWords::Util::URL because they're potentially useful elsewhere
Add support for Bit.ly request timeout
Lazy-initialize Bit.ly access token and timeout
Rename MediaWords::Util::MC_Fork to MediaWords::Util::Process so that we can fit more process-related subroutines in that package
Add MediaWords::Util::Process::fatal_error() subroutine for killing the process when we really want to