Use VSL_cursor->priv members instead of struct overloading, keeping in
line with miniobj coding convention.
Remove some leftover defines from old api
Install a SIGSEGV handler

If we happen to get a SIGSEGV, call the panic handler.  It might not
work, but it's better than nothing and hopefully we can get some
useful diagnostics.
Give the panic a second to happen...
A bit of polish
Now that we can retry fetches, we have to keep things straight:

bereq.uncacheable is our *intention* to pass

beresp.uncacheable is the *consequence* if we pass.

This way it is possible to fetch as miss first time, and try for
a pass on retry.
If we get an illegal og bogus Vary: header from the backend,
turn the transaction into a "pass" and complain in VSL.

Previously we faulted the fetch, but that was overly draconian.
Just put the origin req in busyobj and make cache_fetch.c a lot simpler
Add a "body present" state for req.body
Be more correct
Move the HTTP1 specific req.body housekeeping into struct req,
but sequester it and mark it HTTP1 specific
Add a stringifier for enum req_body_state_e e
Determine req.body status earlier and add more paranioa around that
state.
Add a per session mutex, there are now things we do in parallel
which will need this.

We may need to improve MPL or LCK to cope with this.
Minimal locking to prevent two backend fetches from trying to
get at uncached req.body at the same time.
Forgot this bit