Various config items that I noticed when writing up the new Config documentation for v1.1

While updating the Config Documentation for the various changes that will go into v1.1, I came across a few things that I wanted to change.  I already smuggled one of these into the PR for #526 (adding an additional way to construct an RaDecFunction that works better from a config file).  But I didn't want to delay that PR unnecessarily, so I did the rest on a different branch.

The most significant change is in how I implement the new `index_key` option for Sequence types.  This was something that I added in #364, although I called in `index` there, which I think was confusing given what `index` means for other types, so I switched to `index_key`.  There were no unit tests for it, so it turned out there was some bugs in how it worked.  Here, I added unit tests for it and added it to demo7.  I also changed the functionality slightly to something I think more intuitive.

I also realized that I had been somewhat inconsistent in how I applied the default Sequence indexing, so I made that more explicit (both in the code, which I think is now clearer, and in the documentation.  

Other changes
- Added an index option for Ring types.  Not a big deal, but it seemed like a missing feature.  Now it works like other items that go through a list.
- Fixed a slight bug in the logic of the new retry_io.  It used to only work if there was a logger (which technically there doesn't have to be, although we always have one).

Also, I've made big updates to the Config Documentation page on the wiki, so please check that out too.  It's not live yet, so the direct link is:

https://github.com/GalSim-developers/GalSim/wiki/Config-Documentation-v1.1

Oh, and the branch with this stuff is config_v1.1.  There was no issue for these, so it's not a normal numbered branch.