Add an AppUpdate::StateIsNull method

This also loosens an AppUpdate's fields (state and delta) to allow
nullptr values.

Previously, when presenting the first AppUpdate for a given app_id, we
have duplicated the delta to also be the initial state, so that the
overall AppUpdate's FooChanged methods all return false. This makes it
awkward in client code that needs to do something (e.g. update a UI
icon) both for the initial update and whenever the icon actually
changes.

Follow-up commits will use the new StateIsNull method.

BUG=826982

Change-Id: I284977e7bbc692b0a7b725c658d96ba77e40cfbb
Reviewed-on: https://chromium-review.googlesource.com/c/1373250
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Reviewed-by: Dominick Ng <dominickn@chromium.org>
Cr-Commit-Position: refs/heads/master@{#618091}
6 files changed