"Initializer entry defined twice" should not trigger with zero-size fields
If a field of a structure has size 0 (which happens with an empty struct), the
subsequent field will have the same offset. Assigning to both thus triggers
the "Initializer entry defined twice" error, which should not happen. Change
verify_nonoverlapping to not warn about overlaps where the first field has
size 0.
Add a validation file (validation/initializer-entry-defined-twice.c) for this
warning, which covers two cases where it should trigger (same struct field
twice; two fields of a union) and this case where it should not.
Signed-off-by: Josh Triplett <josh@freedesktop.org>