Add lightweight grib message wrapper

Provides a lightweight wrapper to a GRIB message. This, along with #1300, provide some early elements in the process of improving Iris' GRIB loading capacity.

Note that this new GRIB loader loads only the **coded** keys from a GRIB message, not any of the computed keys. However the gribapi function, `gribapi.grib_skip_computed()`, which should return only the coded keys from the message, has a bug in gribapi < 1.13 so to prove the concept of this GRIB wrapper it has been designed to work with a single message from a specific GRIB file. However once the the new version of gribapi is available the code below should function as expected (i.e. returning only the coded keys from the message).
Since this is a property it will appear as an attribute, not a method, so the docstring should be more like "A list of all coded keys."

I'm not sure about the "not sorted by section" phrase. Isn't the result "not *grouped* by section"? I'm not sure you need to make that point - the fact that it's a simple list implies it already.