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.
It'd be nicer if this was more literal, otherwise it's in danger of repeating the logic inside the DataProxy. If NumPy changes behaviour then it could impact both places equally and not be noticed.
```python
data = [[-1, -1, 0, 1], [-1, -1, -1, 2], [-1, 3, -1, 4]]
mask = [[1, 1, 0, 0], [1, 1, 1, 0], [1, 0, 1, 0]]
expected = np.ma.masked_array(data, mask)
```