#581 Allow other transformations besides shift and expand to take functional arguments

The GalSim paper had the sentence "In addition, the shift, expand, dilate and flux rescaling transformations can take functions of wavelength for their arguments."

It seems (to me) a bit odd that we don't just allow everything to take such functional arguments.  The use cases might be less common for shear, rotate, and transform, but I thought the functionality should at least be available.  So this PR adds that functionality.  

The new sentence in the paper is now "In addition, the various transformations can take functions of wavelength for their arguments," in expectation of this change.
Is this `ntypes` now no longer used?  It doesn't match `len(types)` any more, which I see is now used in the actual loops, so I assume it's safe to remove it...