This patch adds the types leap and link to std::chrono.
These are "building block" types, that will be used when we get all the time zone stuff in.
Note the new type __undocumented, that denotes an undocumented call.
chrono is probably not the right place for this in the long run, I expect that it will find other uses.
I don't think the name __undocumented describes what it is this does. It's used as a unspellable tag used to make constructors uncallable by the user. Maybe __private_ctor_t is a better name?
That said, I think I would prefer making the constructors private instead. Especially for types like link which should only be created in one or two places.