WIP: tighten identifier spec 

DO NOT MERGE YET

There are still a couple open questions.  As I read through it I wanted to wordsmith a bit, which lead to reordering some to read sort of top-down.  There were a couple things I thought were wrong (pod name should be a subdomain) and a few things I think we can make more concise.  I also added examples and clarifies corollaries.

@smarterclayton in particular


yeah, generation becomes "the master(s) changed something".  Either an update or a reschedule to a new host etc.  Making it something simple allows for simple rules like "if two nodes report a pod with the same name and ID, but different generations, the larger generation wins".  We use something like this internally for name registration.  Maybe we don't need it yet?

I see your point about env vars, though I am maybe not as worried as you.  On the other hand, if something like generation changes without killing a container, the env var is stale.  This was mostly a hacky idea to store metadata through docker without docker supporting it.