Refactor response calls to remove duplicated logic

I'm not entirely sure I like that if you want a none result you still have to declare the ``response_result`` function and just return ``None`` in it. However I'm not sure it's a great idea to default to returning ``None`` either.

Anyone else have an opinion?
Yes, the only downside to that is if someone forgets to implement they'll get a None response instead of a ``NotImplementedError`` exception. I'm not sure which I prefer. Do you prefer the implicit ``None``?