m/n/c/{cluster,curator}: move NodeCredentials to cluster

This keeps the NodeCredentials/NodeCertificate logic types near their
consumer, the cluster bootstrap code. It also rewrites these structures
to be centered around the x509 data itself.

This is a followup to https://review.monogon.dev/c/monogon/+/186 .
Attempting to introduce it into that change was too complex due to the
surrounding cluster/curator refactoring.

We also take this opportunity to write some simple tests for the
credential validation logic.

Change-Id: Iead3cfdd5778274508d79799f4750f5fdf9385bc
Reviewed-on: https://review.monogon.dev/c/monogon/+/197
Reviewed-by: Lorenz Brun <lorenz@nexantic.com>
diff --git a/metropolis/node/core/cluster/status.go b/metropolis/node/core/cluster/status.go
index d82130b..3f99567 100644
--- a/metropolis/node/core/cluster/status.go
+++ b/metropolis/node/core/cluster/status.go
@@ -5,7 +5,6 @@
 	"fmt"
 
 	"source.monogon.dev/metropolis/node/core/consensus/client"
-	"source.monogon.dev/metropolis/node/core/curator"
 	cpb "source.monogon.dev/metropolis/proto/common"
 )
 
@@ -27,7 +26,7 @@
 
 	// Credentials used for the node to authenticate to the Curator and other
 	// cluster services.
-	Credentials *curator.NodeCredentials
+	Credentials *NodeCredentials
 }
 
 // ConsensusUser is the to-level user of an etcd client in Metropolis node