#552 Detector non-linearity and reciprocity failure

A basic method to apply any desired non-linearity on an Image has been included to begin with. The non-linearity can be specified by a LookupTable or as a function, possibly with parameters, that can act on NumPy arrays. In addition, it also includes a feature to correct for reciprocity failure. A basic unit test to test these functionalities have also been built.
I always thought of non-linearity as being a non-linear gain.  So the normal thing is ADU = gain * e-.  But with NL, it would be ADU = NLFunc(e-).  

However, I suppose, you could factor out a factor of the nominal gain either before or after the non-linearity, right?  So it sounds to me like you are imagining that people will describe the non-linearity such that ADU = gain * NLFunc(e-).  Presumably in such a way that the low-amplitude effect is approximately linear with a slope of 1.  

But it seems reasonable that people might define this differently depending on how they decide to characterize the effect.  ADU = NLFunc(gain * e-) seems just as reasonable a definition (with a different function for NLFunc of course).