Improved time handling for PDT0

Adds support for significanceOfReferenceTime = 2, and fixes the handling of time within PDT0 to allow for the "reference time" coordinate being supplied as either "time" or "forecast_reference_time".
Does this function actually _swap_ the incoming reference time coordinate? It looks like it's the case that if the input ref time coord is a `time` coord then a `forecast_ref_time` coord is returned and vice-versa.