Make publishSynchronous public.

The blocking version of publish called publishSynchronous will be useful for
developers, so make this public.

Change-Id: I99e64afb751a37cd93d35195e2058d30d5d0d568
Stop using WeakReference for bitmaps to be published.

To conserve memory, previously we used WeakReferences to store Bitmap
references for cards to be published. In slow network situations, these
could be garbage collected before the publish occurred. Change these to
strong references instead and recycle them as soon as we can.

Change-Id: I0bf9c32b7a34e345e2d2cd3312375fa78b47e78c
Store pending updates and apply them later.

Updates to the API should not be pushed immediately, so store them until
processUpdates() is called.
Change-Id: Iade90d61eeb7c2a4e89c9ca739b30fbe88733fea
Do not create a card for a null CardData.

In CmHomeApiCardProvider, if a null CardData is encountered, do not pass
this to DataCardBuilderFactory to create a new card.

Change-Id: Id568dd1f2188567e11b69d9c42e232609d956f50
Update reference to DataCardFactory.

DataCardBuilderFactory was renamed to DataCardFactory, update the
reference.

Change-Id: I1836cd55b56ab5249748bcdb05e9cffd3c180980