Refactor notifications

I'm replacing the implementation of notifications with the blinker
library. In order to do this properly I wanted to have a more defined
interface and less coupling in the tests. Test should be unaware of the
implementation of the thing they are testing so that the implementation
can be changed later.

Change-Id: Icdcbf77944187bc9b2b390420862f700baa179c9
Merge "Refactor notifications"