m/n/c/curator: implement Join Flow

This implements Join Flow in Curator, as described in Cluster Lifecycle
and Integrity design document.

Change-Id: Idabb471575e1d22a7eb7cce2ad29d18f1f94760a
Reviewed-on: https://review.monogon.dev/c/monogon/+/667
Reviewed-by: Sergiusz Bazanski <serge@monogon.tech>
diff --git a/metropolis/proto/common/common.proto b/metropolis/proto/common/common.proto
index 07ff460..46bd08f 100644
--- a/metropolis/proto/common/common.proto
+++ b/metropolis/proto/common/common.proto
@@ -132,6 +132,9 @@
     // listening for gRPC, and role-specific services like etcd and
     // Kubernetes).
     string external_address = 1;
+    // timestamp is an epoch number associated with the last status update.
+    // It's set with a nanosecond granularity.
+    int64 timestamp = 2;
 }
 
 // The Cluster Directory is information about the network addressing of nodes