Use exact 'missing' values for grib loading.


Attempts to resolve issues raised in https://github.com/SciTools/iris/pull/1354
 at : https://github.com/SciTools/iris/pull/1354#discussion_r18400177

The gribapi handles 'MDI' values as special cases, always returning one of two values (signed, unsigned), as described there.
But it also treats values differently depending on whether they are 'just values', or keys into a code table : Table codes of 'all 1s' values return the original number (e.g. 255) and *not* one of the mdi values.

This is rather confusing, as sometimes you need some trial+error to see how a value is handled by the gribapi.  However, for now I've chosen to encode all 'missing data' testing as explicit tests against the known exact values for the specific keys in question.

> Looks like _GRIBAPI_MDI_SIGNED is within the range of np.int32.

It *is* within int32 range, but it is not a valid GRIB 4byte signed integer, cos it is defined to be MDI !
So they are both different from any possible valid GRIB integer.