Cache images using MD5 hash instead of random UUID

Use an MD5 hash of the Bitmap contents instead of a random UUID for each
image, so that multiple images will not be stored on disk for the same
resource. If the same content is use for an additional image field of
DataCard or DataCardImage, the existing cached image will be reused.

Change-Id: Ie36d6e7cb745a58d9c01ddf1a00ad19e839f478c
Fix bug so new cards are built with builder.

In CmHomeApiCardProvider, new cards were still instantiating the base
card ApiCard class, instead of using the proper DataCardBuilderFactory.
Fixed this.

Change-Id: Ide11aa30f288113ae82b122818ddd1927b07df5d
CmHome : Add updates for apiCard

Change-Id: I4378e96bcb4220861935735670f5bde562c5309b
Move stream close into it's own try/catch.

One stream could possibly not be closed when storing cached bitmap
images. Move this into its own try/catch to fix this bug.

Change-Id: I8a6f1385ba28aabe3eb97afaaba84cfa7c5d61fd
Fix DataCard publish and unpublish issues.

Cards were not using their updated ContentProvided authority to
unpublish and publish. Fix these problems. Unpublish was incorrectly
deleting the DataCard before deleting related images, which would fail
as they have a foreign key referencing the DataCard. Delete images
first, then the DataCard.

Change-Id: Id770a87d9badf7f0f35398996f3849104e6a8f8a