Cluster: Add cluster-config-file file locking

Prevent multiple Redis Cluster processes from using the same
node configuration file, since if that happens, your entire
cluster becomes unusable (and that confuses people who are
just getting started).

This commit changes the functionality of reading and saving
cluster configs.  Now we keep the cluster config file open
as long as the redis-server process is alive.  If we close
the config file, we invite a race condition where another
node could start without our lock in place.

Instead of closing the configuration file after reading it, we
retain the fd globally.  Also, we don't close the file after
writing anymore either.