Do not unregister BroadcastReceiver multiple times.

Although the package changed BroadcastReceiver in CMHomeApiManager
should be registered and unregistered exactly once, in some cases it
could be unregistered multiple times. Prevent this by setting the
reference to null on the first unregister.

Change-Id: I0e50679a88db0b72630162814dd6ecfda669ac9b
Unpublish CardDataImages on CardData unpublish.

Force CardDataImages to be a child of exactly one CardData. Remove any
CardDataImages that have been removed from a CardData when a CardData is
published.

Change-Id: Id658a8064209ccda77ac1213eb016a221696d8c8
Handle the case where a CardData no longer matches.

If a CardData has mutated to the point where it no longer matches it's
original card, remove the first card and re-add it as a new one. Adjust
the thread handling so that the CmHomeApiCardProvider and
CMHomeApiManager no longer worry about thread handling. Let CM Home make
sure UI updates occur on the main thread.

Change-Id: I26f022fa208adda119c5f24d86adf3ef163193a2