#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.
> should the galsim.Image know its own gain via a .gain attribute? 

I don't know.  I kind of think if you are doing all these very careful tracking of detector effects, you should just have the e- -> ADU step be explicit and never let GalSim handle the gain for you along the way.  

I feel like the places we use a gain are a bit fast and loose compared to the steps that Jason laid out for doing everything correctly.  So I think it would be clearer to have the division by gain be just another step along the way that must happen in precisely the correct place in the sequence so you always know exactly what units everything is.