Notifications: rework notifications API

Signed-off-by: Christophe Chapuis <chris.chapuis@gmail.com>