internal/v4: implement extra-info GET and PUT

We also change a bunch of ErrNotFound returns to use WithCausef
to aid error diagnosis.

We store the extra-info values as raw JSON, so that we're guaranteed
a correct round trip through mongo.