Made update data in SingleDeviceUpdate proto buff message optional.
This is because backout and complete do not populate the update.  This
is because we can presumably infer the data from the stage command
that necessarily preceded it.
COMPLETE and BACKOUT update types do not send any state as part of their messages.  This is because all previous state should be recoverable from history.  Updated SingleDeviceUpdate to handle case where asked to create an update with null data.