Further tweaks.

Added a string-to-enum cast.
Now use the "insert line file info" pragma to pass line number information to the c_string
to integer, c_string to real and c_string to complex conversions.
Removed the redundant (and incorrect) cast from imag to c_string.

Empty c_string_copies are now represented by a null pointer, so I fixed two places that
used the old "" value instead.

Failure count is now down to 90 (std),
Continued tweaks from standard testing.

Disable redundant cast from c_string to string in ChapelBase.
Add explicit cast from enumerated to c_string_copy.
Add explicit casts from real, imag and complex to c_string, to support tests in
types/string/sungeun/c_string.  These should be deprecated and removed ASAP.
Add an explicit cast to c_string in c_string_copy.write(), to avoid infinite recursion.
Add null tests in the runtime support routines, since an empty c_string_copy can be a null pointer.
Rewrite string_concat() so it handles null input strings efficiently.
Revised the comment on c_string_from_wide_string, to indicate that an empty string is
represented by null, not "" (now that it returns a c_string_copy).

Down to 90 failures.
Work in progress.

The changes in this commit at one point got the error count down to about 40, but then
further changes introduced double deletion errors so that nearly every test fails.  Branch
from the previous commit and cherry-pick from this branch to duplicate that.