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

Chasing #1246 

/cc @philips @unihorn @xiangli-cmu 
I'm going to leave it (as unchecked) until the day comes when we add any other ClusterStateValue and this file gets touched anyway