Reject CSV without p_id. #4169.

It does not make sense to use this with a CSV that does not include
a p_id column. Fail fast in case someone makes that mistake.
Add spec for header case-insensitivity. Done with #4169.

This is (apparently) the default for `CSV`. We are relying on it in
the wild, so we should make sure that it remains true.
Merge branch '4169-followed_no_p_ids' into develop