Restore honoring --max-c-ident-len for PGI.
Merge pull request #784 from vasslitvinov/honor--max-c-ident-len--for-pgi

Restore honoring --max-c-ident-len in the compiler, for PGI C compilation.

The compiler was not honoring --max-c-ident-len aka fMaxCIdentLen,
which is set automatically for PGI compilation. As a result,
too-long identifiers got codegen-ed and PGI complained.

The culprit I think was the addition of CLASS_STRUCT_PREFIX and "_s"
(or, possibly, "_object") in AggregateType::classStructName().

Now these additions are accounted for via maxCNameAddedChars.

I do not know how to set maxCNameAddedChars automatically,
so I overshot it by a little and added reminder comments to
AggregateType::classStructName().

Tom's reviewer comments: This is OK as a workaround, but I don't think
we should rely on comments to ensure that this bug is not
repeated. Performing the truncation as late as possible in label
generation would permit it to ensure that a too-long identifier is
truncated to fit the available characters exactly. The replaced
characters (plus a few more) could be replaced by a hash of them
(rendered in base64). That would make it very unlikely that two
truncated labels would conflict even if truncation is performed after
uniquification.

Reviewed by Tom.