#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 guess that statement is overly prescriptive.  What we meant to say was really that nonlinearity can be thought of as something that occurs before e- -> ADU conversion (with IPC and read noise being added after nonlinearity and before e- -> ADU conversion in the NIR detectors, as well).  If someone wants to do something else, they can do that of course, but then it's up to them to track all the appropriate factors that must be included.  How about if we change this sentence to something like

```In the observation process, the nonlinearity can be thought of as occurring before conversion from e- to ADU.  It is up to the user to choose what units their input image is in (e- or ADU) but if the latter, then `NLfunc` should be chosen to handle the necessary factors of gain.```

?

(And BTW we plan to have on #590 a demo for WFIRST images that will include all the detector effects in the expected order, so people who are not clear on how to use all of this stuff sanely will have an example soon.)