support X-Trans sensor raw files

X-Trans specific changes:

- use RawSpeed to read RAF files
- downsampling for fast display
- interpolation: bilinear, VNG, and modified AHD (aka Markesteijn), all adapted from dcraw; these operate on floats and use OpenMP
- highlights, hotpixels, invert, rawdenoise, temperature handle X-Trans
- disable cacorrect for X-Trans
- white balance presets and basecurve for X100S
- cameras.xml and adobe_coeff.c entries X-Series cameras
- documentation updates
- dngmeta.sh handles X-Trans

None of these changes should alter performance for users of Bayer sensors. The changes have been tested on Bayer and X-Trans matrix raws as well LDR files.

The code in this pull request doesn't:

- handle "dynamic range" feature on X-Series cameras
- implement SSE/OpenCL optimizations
- implement cacorrect for X-Trans sensors
- include white balance data and basecurves for X-Series cameras besides X100S

There is generally one commit for each major change. For the VNG/Markesteijn demosaic code, one commit imports/wraps code from dcraw, then another modifies this code to use floats/OpenMP and otherwise make it more specific to darktable.

This pull request closes #9951 and fixes #9388.

If it becomes necessary to update to the latest LibRaw, see separate branch libraw-0.16 (https://github.com/dtorop/darktable/tree/libraw-0.16). This pull request for the "xtrans2" branch keeps the extant LibRaw 0.14.7 (with the addition of a small patch to not break the temperature iop for the X-Pro1) so as not to add another LibRaw dependency.
Much better, but i should have stated that clearer in the first place: openmp shared() should contain only buffers that you write. Buffers that are only being read should be const.

In this case, you write to ```out``` in the end of the function:
```
float *outc = out + 4*(out_stride*y);
...
outc[0] = sum[0] / 65535.0f / num[0];
```