Add timeout and load failure handler for CSS resources
Make CampaignKeys into CampaignInfo... both are hashes, but the latter is general and lets us store shortened link info as well
Implement persistence of shortened url's so that going back to a campaign you'd already selected doesn't have to requery the bitly api