httpbakery: add HTTP checker

This will be standard to use in HTTP-based servers.
Also add a single caveat, client-ip-addr and a checker
for that, and a function that can create that from an
existing request.

We also introduce an "error" caveat, which can never be
satisfied, but makes it easy to create caveats from possibly-but-very-rarely-invalid
data without adding lots of error checking. When the caveat
is checked, the error from the check will reflect the orginal
error when the caveat was created.
Three checks here are shared between this helper and the caveat checker above.
Is it worth implementing an external function?