Bug fixes: mutex copies & channel closures.

- The listener was closing the close channel without initializing it.
- The listener was closing the close channel as it was dying, but the net.Serve method already does this. This was leading to a double-close.
- The methods for changeCertListener were operating on copies of the struct. This meant we were locking on copies of mutexes.