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.

Oh dear. I'm not convinced this is true.
```python
>>> ii32 = np.iinfo(np.int32)
>>> ii32.min
-2147483648
>>> _GRIBAPI_MDI_SIGNED = -(2 ** 31 - 1)
>>> _GRIBAPI_MDI_SIGNED
-2147483647
```
Looks like _GRIBAPI_MDI_SIGNED is within the range of `np.int32`.