Fix a memory leak in the error path in ASN1_mbstring_ncopy().
Replace an if() posse with a switch() statement in traverse_string().
Remove unnecessary casts in cpy_*(),

with tweaks from guenther@; ok bcook@ jsing@ guenther@
a_enum.c used to be a copy of a_int.c with s/INTEGER/ENUMERATED/g , but
some changes an a_int.c did not get applied to a_enum.c; despite style
changes, make sure BN_to_ASN1_ENUMERATED() correctly handles a zero value
the same way BN_to_ASN1_INTEGER() does.

ok bcook@ beck@ jsing@