GRIB support for saving time increment for time aggregated data (PDT4.8)

This PR enhances the existing code for saving data in PDT 4.8. As well as refactoring the code it adds support for parsing and saving the cell_methods on cubes to determine the interval (e.g hourly or daily) of the data that has been summed/averaged/...
Maybe personal, but I'd find it easier if you used try/except to establish values for 'units_type' + 'inc', then made the next block unconditional :  Then it's clear that in all cases you set these 2 keys.
I.E.
```
    try:
        inc =  ...
        units_type = ...
    except ValueError:
        units_type, inc = 255, 0
    gribapi.grib_set_long(grib, "indicatorOfUnitForTimeIncrement", units_type)
    gribapi.grib_set_long(grib, "timeIncrement", inc)
```