When showing a diagnostic about a bitfield size, point at the width.

Before it pointed at the token after the width (usually ';').
Remove non-sensical test from parse_bitfield_member().

A type cannot have 0 bits.
Improve error handling when checking bitfield members.

* Do not check the width, if the base type is not an integer type.
* Do not report an error, if the base type is invalid.
* Show the position of the entity as error location (instead of the token after the declaration, usually ';').
Simplify maybe_negative() a bit.
Just make a chain of all labels instead of all goto and label statements.
Parse GCC extensions, even when rejecting them with an error.