Grib pdt 8

Following existing support for PDT 0, 1 and 31.
I stole @bjlittle idea of managing multiple mock.patches together without stacking up context managers, and made it into a helper method of IrisTest, so that is a separate commit.
This kind of test already exists in `lib/iris/tests/integration/test_grib2.py`.