Extract a `PostPusher` service with an IFTTT implementation. That means
if this needs to change to use a different service in the future, the
IFTTT implementation can remain unchanged and a new implementation can
be added with its own form params etc.
This also makes this functionality easier to test as we can add a
`NullPostPusher` implementation for testing.
References #332