Currently unit tests only succeed if the state path is writeable, since it is hardcoded.
This means nodeMeta can be private again, and also makes it easier to pass a Node object to the cluster for local meta, instead of a generic byte[] function. For later updating, that node is passed using Update() instead of New().
Splitting into modules will help keep concerns separate, at the cost of a slightly more verbose code.