#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 think I liked the term `base_flux` better.  It just needed some explanation.  In particular, I don't think the term `unity_gain_flux` is actually correct, since the nominal gain might not be 1.0.  This parameter is the flux at which the gain is calibrated to be whatever the gain is taken to be.  Apparently you guys are using 1.0 now, but it doesn't seem like that is necessarily a requirement.  

Also, I don't think this should have a default value.  The choice of 1.0 photons/sec seems way too arbitrary to me.  It seems like this is something the user needs to understand and provide the correct value for their detector.