Adding `hasexplicittype` looks weird to me.

I had thought that, if `!members && !memtype`, the taking the base type would cause "forward reference" or "unknown size" error.
However by looking `enum.c` now, I noticed that `EnumDeclaration::getMemtype` returns `Type::tint32` for the base type of `enum E;`.

I think that the current `EnumDeclaration::getMemtype` behavior would be a bug. Could you consider fixing the function rather than adding `hasexplicittype` field?