(bug 43810) Deleting CN Campaign causes PHP Warn

PHP was throwing a warning where we attempted to diff a settings
object that was non existant because the campaign had probably
been deleted before hand.

I've choosen to not attempt the diff of objects that return a null
settings object. This seems like the best path because I like the
idea of not returning an array from getCampaignSettings() when
something doesn't exist.

I've looked at all the other use cases and I think this is the only
one affected. There may be point cases where we have timing bugs
but I'm going to defer on addressing those until we refactor CN
into proper classes.

Change-Id: I81432368f895d5a0c3ba968086ae17485aaf8022