[Notification] Make notification IDs assigned by native side

We share the same id-space for notifications in Mobile, so makes more
sense reuse the assigned IDs from the native notification library. This
reduces the mapping work we have to do.

To achieve this we had to change the 'NotificationPost' message to be
synchronous, enabling us to throw errors correctly when there was a
failure posting the notification.
[Notification] Add update() support for Desktop

Added a new message 'NotificationUpdate' that will update an existing
notification. This can be tested in the example by clicking the
"Update (N)" button.

This commit creates a helper struct to ease extracting the parameters
from the message we receive. As we start to pass more parameters, we
fill this struct.

Note that Desktop will support only a subset of all possible properties
that a notification can have.
[Notification] Add update() support for Mobile
[Notification] Add support for PROGRESS status type

This adds support for the PROGRESS status type and its related
properties: progressType and progressValue.