Use a success predicate instead of success codes

Interestingly this does not break the tests.

This ticks the next box of #824.
`_PureRequestStub` has the default `__init__` from `characteristic`. I believe this means it never accepts positional args.