New GRIB2 load convert mechanism

This is an early bird PR that implements the proposed new load translation of GRIB2 messages to cube metadata.

This PR is a WIP.

I'm keen for other developers (i.e. @rhattersley) to cast their eye over this PR for feedback even though I still need to complete the doc-strings and supplement with associated tests.

- [x] Doc-strings
- [x] Unit tests
This seems like an odd thing to do. But I see it's also done in the [Pyke rules](https://github.com/SciTools/iris/blob/3bbda2bca6d31aa36999a9a173934f4f125b6bff/lib/iris/fileformats/_pyke_rules/fc_rules_cf.krb#L1142) for the netCDF loader.

So, why do we have this logic? And if we do, shouldn't it be in a shared routine?