Update gribapi dependency to v1.12.1

This updates the Iris dependency gribapi from v1.9.16 to v1.12.1. This causes very little in the way of changes other than to test results, but does require a modification of the install process for gribapi on Travis.

The test changes come down to the following...

The `test_grib_load` change results from a bug in gribapi v1.9.16, where it mis-calculated `_periodEndDateTime` from a `stepRange`. This can be empirically demonstrated: the GRIB template defines a `_periodStartDateTime` of 20070323 12:00:00 and the maximum `stepRange` is 55hrs. Adding these together shows the correct `_periodEndDateTime` is 20070325 19:00:00. This is documented in the [gribapi v1.9.18 changelog](https://software.ecmwf.int/wiki/display/GRIB/GRIB+API+version+1.9.18+released).

The round-trip GRIB test changes result from a change to gribapi that means that it no longer writes out an empty section 2 (user-defined section) by default. This is documented in the [gribapi v1.12.0 changelog](https://software.ecmwf.int/wiki/display/GRIB/GRIB+API+version+1.12.0+released).

In both cases workarounds based on gribapi version have been implemented so that the tests will pass for both versions of gribapi.
Better to use `gribapi.grib_get_api_version()` and check for the 1.9.18 transition.