Add ClusterVNodeBuilder

As discussed in #214. This is only used for embedded, though we may at some point want to consider using it internally too.