#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.
All the other unit tests (that don't show up in the Files Changed page on GitHub) use ntypes.  Only the first test where we test the aliases use len(types) instead.  I should probably add a comment explaining that here.