Added FieldNameTuple to std.traits

I don't know what the spec guarantees, but given that struct fields are guaranteed in order, and that the first one is guaranteed at offset 0, I don't really see how it could be any other way. But no, I think this relies on implementation detail.

That said, it wouldn't correctly take into account the mythical "multi-context" objects... should we ever support them.