Extract notifier code into a method

This removes the notification code from the Runner, which make the Runner
a more cohesive object. This has 2 benefits:
* making it easier to test the notifications in isolation
* making it possible to pass the notifier into another object
  (which I'll make use of in the next commit to pass the notifier into
  a Repository object)

This should improve the CodeClimate score as well.