Split config into a separate file and add sanity check and test

Chasing #1246 

/cc @philips @unihorn @xiangli-cmu 
how about
```go
// by pass initial cluster checking if the server will start from an existing cluster
if c.clusterState != ClusterStateValueNew {
  return nil
}
// checking
...
```