Fix a bug reading a config from a file.

- If the server definition was empty it would not instantiate the server
  instance and would crash. Fixup references now instantiates nil
  servers if present.
Use return error instead of logging in client.

- Make a new error type for returning the several errors that can occur
  from the client on close.
- Invert the kill channels in client to allow them to return an error.
Remove adding/removing state/store on rehash.