GRIB2 GDT 4.

This PR extends the new GRIB2 capability to include GDT 4.

- [ ] Rebase against #1354 
- [ ] Deal with MDI
@dkillick Ode for a formal specification language rather than English ... GRIB has driven me to the point of contemplating the merits of Z and VDM *sigh* ...

Given the wording of the spec *and*  `../share/grib_api/definitions/grib2/template.3.latlon_vares.def` I *think* my interpretation is correct.

Essentially, we need to calculate a variable `resolution` using `basicAngleOfTheInitialProductDomain` and `subdivisionsOfBasicAngle`. The interesting case is where either of these is `0` or `MDI`. Although the spec doesn't explicitly say this, my working premise is that these keys either both have valid values, or both have `0` or `MDI`.

For `0` and `MDI` we want to default to the normal case of a `10^-6 degrees unit`. This means that:
    * `basicAngleOfTheInitialProductDomain` is `1`, and
    * `subdivisionsOfBasicAngle` is `10^6`

This completely makes sense to me. If you've got another interpretation, then I'll love to hear it ...