Defringe IOP for LCA correction "fringing"

An iop that I already presented on the mailing list a year ago that is supposed to remove colorful edges "fringes" from longitudinal chromatic abberation (LCA), often also called "purple fringing", but it can be any color. Opposing to the commonly known TCA which is geometrically oriented, this lens deficit is dependent on the focus: on different out-of-focus areas, there can also be a difference how a lens refracts each wavelength.

As per-pixel focus information is usually not available, this iop works just by trying to detect the symptoms by detecting highly saturated edges and tries to desaturate them just as much as required.

Some credit goes to Emil Martinec from rawtherapee: The basic idea for this algorithm is the defringe module from rawtherapee, however I re-implemented and made some improvements on it.

I was trying to improve even more over the time, but it's already useable since quite a while, and so I think this should go in the next darktable release, as this is still a missing feature in my opinion.
not that it matters much, but enum is better:
```
typedef enum dt_iop_defringe_mode_t
{
  MODE_GLOBAL_AVERAGE,
  MODE_LOCAL_AVERAGE,
  MODE_STATIC
}
dt_iop_defringe_mode_t;
```