There were a few things that weren't quite done how I would have done them,
so I changed the implementation. Should still work in cygwin, though.
The only actual functional changes are:
- index.Reader.close() now actually sets m=None rather than just closing it
- removed the "if rename fails, then unlink first" logic, which is
seemingly not needed after all.
- rather than special-casing cygwin to use "hostname" instead of "hostname
-f", it turns out python has a socket.getfqdn() that does what we want.