Be less confusing about notification states

Depending on the way we snake through send_update we might end up in
_send_instance_update_notification without the vm or task states. The
issue being that we always send those states to the notification
payload. So we are actually producing notifications with None(None) =>
which is clearly not right.

This whole notification path should probably be refactored to prevent
this threading from happening, but in the mean time this will at least
mean that we aren't creating blatantly wrong notifications.

Add unit tests for the new behavior.

Change-Id: I5092880647a4ac826376396610599dab99efb08e
Closes-Bug: #1204169
Merge "Be less confusing about notification states"