Add a with_code response predicate

What this PR introduces is:

- a standard signature for response predicates (by virtue of introducing the first one)
- a response predicate that checks response codes (so it can eventually replace the `pure_http` stuff that currently checks codes, speciflcally `check_status`)

This ticks the first box of #824.