Add section 6 (bitmap) translation to new GRIB loader

Loads the bitmap from section 6 of a GRIB2 message (if present). If a bitmap is contained in section 6 it is combined with the message data so that the resultant cube's data array is a NumPy masked array.

The bitmap is combined with the message data in `fileformats.grib._message._DataProxy`. The process in `fileformats.grib._load_convert` has been adjusted to only throw an error if an invalid bitmap is encountered, rather than if a bitmap (invalid or not) was encountered. These changes have introduced two new test modules.

The existing grib message test module has been updated to test that the bitmap is being retrieved and applied correctly. One of the impacts of this change is that the data attribute of the message always needs access to the section 6 of an input message, so all the existing data tests in this test module have been updated to provide a section 6.
Since you've been having such fun improving my [deprecation guide](https://github.com/SciTools/iris/pull/1456) :stuck_out_tongue:, I can't help pointing out that "hexal" is not a real word. At least, not in English. :wink: 

More importantly, the statement is not actually true. The bitmap is actually stored in "contiguous bits", with a single bit for each data point. I'm guessing the real problem is the ECMWF GRIB API is returning those bits as strings of some sort by default - hence the explicit `int` data type.