Add soft boundaries to bauhaus sliders

These have to be enabled using dt_bauhaus_slider_enable_soft_boundaries
and you should use dt_bauhaus_slider_set_soft instead of
dt_bauhaus_slider_set for those afterwards. Growing the region is only
done when entering the value manually (right click or vim keys).
Use soft boundaries of [-3 , 3] for exposure

Hard boundaries are still at [-18 , 18 ].
use LibRaw 0.16.0

LibRaw >= 1.15.0 no longer allows document_mode for grayscale
uninterpolated data, hence now directly reading raw data buffer.

QUESTIONS:
- does this produce different data than document_mode did?
- do need to set so many params for LibRaw if not calling
  libraw_dcraw_process() and libraw_dcraw_make_mem_image()?
record x-trans sensor's filter array

right now the only way to identify if the image is x-trans mosaiced is
to check for a dcraw-specific magic # 9 in filters

QUESTION:
- is there a better way to id non-bayer filter, such as a flag, or
  xtrans[0][0] == -1 means bayer?
demosaic x-trans initial try -- via linear interpolation

PROBLEMS/TODO:
- wrong at 1:1 view
- should use floats in interp. routine the whole way
- should use use x-trans interp. for all cases in process
- should use dcraw >= 9.19 demosaic algorithm
first pass at fast clip/zoom x-trans mosaiced image

quick copy of exisitng dt_iop_clip_and_zoom_demosaic_half_size,
presumably is wrong math, has buffer overflows, could be radically
improved, etc.
stub for x-trans in dt_image_flipped_filter

at least don't lose the x-trans magic '9' from dcraw
TODO: actually rotate the x-trans filter
misc. cleanups for linear xtrans demosaic

- floating point division for interpolation
- use roi offsets for border interpolate & lookup creation
- safer fcol macro
- store central pixel color in lookup
- more meaningful variable names
handle xtrans sensor in white balance module

as white balance comes before demosaic, this fixes the weird pattern
in images
working quick clip/zoom of xtrans data

dt_iop_clip_and_zoom_demosaic_onethird_size_xtrans() works now,
parallel to dt_iop_clip_and_zoom_demosaic_half_size(). Not most
optimized code.

NOTES:
- The upper limits for px/py and maxi/maxj aren't tested
- Things may get odd if scale is > 2/3, but that shouldn't happen?
use LibRaw 0.16.0

LibRaw >= 1.15.0 no longer allows document_mode for grayscale
uninterpolated data, hence now directly reading raw data buffer.

QUESTIONS:
- does this produce different data than document_mode did?
- do need to set so many params for LibRaw if not calling
  libraw_dcraw_process() and libraw_dcraw_make_mem_image()?
record x-trans sensor's filter array

right now the only way to identify if the image is x-trans mosaiced is
to check for a dcraw-specific magic # 9 in filters

QUESTION:
- is there a better way to id non-bayer filter, such as a flag, or
  xtrans[0][0] == -1 means bayer?
demosaic x-trans initial try -- via linear interpolation

PROBLEMS/TODO:
- wrong at 1:1 view
- should use floats in interp. routine the whole way
- should use use x-trans interp. for all cases in process
- should use dcraw >= 9.19 demosaic algorithm
first pass at fast clip/zoom x-trans mosaiced image

quick copy of exisitng dt_iop_clip_and_zoom_demosaic_half_size,
presumably is wrong math, has buffer overflows, could be radically
improved, etc.
stub for x-trans in dt_image_flipped_filter

at least don't lose the x-trans magic '9' from dcraw
TODO: actually rotate the x-trans filter
allow debug builds
test code to print margins and test print pgm of incoming raw data
test print pgm of interpolate incoming

and lose some debugging code
lose some debugging code
bypass temperature module if x-trans mosaic data