notifications: rework notification API

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