Use a truly unique notification ID for all cards

Use a combination of <package-name> + / + notification ID for the
internal ID of each DataCard published, so that they will always be
unique between all applications.
Check if internalID is null on notification delete

InternalID can be null which will break the handling of unpublishing
deleted notifications.
Merge branch 'upstream'