allow calculation of forecast period from forecast ref time

The current grib save code makes no use of a `forecast_reference_time` coordinate. If a cube has no `forecast_period` the forecast time is set to zero rather than calculating it from the other coordinates. This PR adds logic so that in the case of a missing forecast period, it checks for the presence of a forecast reference time and determines the appropriate forecast time.

I've also changed the case of no forecast period and no forecast reference time so that the `significanceOfReferenceTime` value is set to 3 (Observation time) rather than the current 2 (Verifying time of forecast).