Make all constants typed.

Before, iota was used for grouped constants representing C enums.
This was changed to the following pattern to prevent any issues in
case the C changes (for example, an enum is reordered):

type Thing int

const (
	THING_A Thing = C.THING_A
	THING_B       = C.THING_B
)

However, unlike with iota, this pattern does not set the type Thing
for all consts in the group, and THING_B becomes an untyped constant.
This can lead to bugs where the compiler is unable to catch issues
wehre THING_B is passed as an argument to a function that should not
take a Thing.

Application code may need to be fixed to properly use constants if
previously misused.