Fix treatment of string enums in CTFE

String enum compares were failing to compile because it wasn't checking the base type, so wasn't recognizing it as a string.
Likewise, it's OK to cast a string literal to an enum of string type.
After having done that, I've completely disabled the check for casting away string literals, since the assignment code safeguards you from modifying the string literal, and such casts are allowed in const-folding code. I'd like to keep the code around for a bit longer since it is useful for debugging some of the things I'm working on right now.