Update interface to string_from_c_string_copy() to consume its argument.

For safety, a routine taking a c_string_copy argument should accept that argument by
reference and set its value to NULL in the caller.  This can prevent double-deletion
errors by enforcing that the actual argument is not reused after it has been adopted.

This change necessitated changing const variables to standard "var" variables, so the
c_string_copy can be overwritten with _stringNull after it has been adopted.

Renamed chpl_free_c_string() as chpl_free_c_string_copy(), since we should never free a
c_string.

Removed wide_string_from_c_string_copy(), since it appears to be unused.
Change signature of chpl_rt_free_c_string to take a c_string_copy instead.

Only the c_string_copy version of the function should be required, but a c_string version
is supplied in the interim as a bridge.  A c_string is "unowned" so it is technically
illegal to free one.

The new string implementation uses c_string as its base type instead of c_string_copy,
because it was created before the distinction was made between "owned" c_string_copy
objects and "unowned" c_string objects.  Rewriting string_rec to use c_string_copy as its
base type is left as a separate task.

TODO: Rewrite string_rec to use c_string_copy as its base type.

###DETAILS
chpl_rt_free_c_string_copy() was rewritten to take its argument by reference and zero out
the referenced c_string_copy pointer when done.  On the Chapel side, the pointer to be
deleted must be passed using ref intent.  In several places, it was necessary to add the
ref intent to an argument or to change "const" to "var" to make a local variable writable.
Merge branch 'robustCStringCopy' of github.com:hildeth/chapel into robustCStringCopy

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
Reduce --no-local errors from 121 to fewer.

Turn a few more consts into vars.
Make _cast(type t, ref x: c_string_copy) where t == string take its c_string_copy argument
by reference.
Rewrite beer programs to store c_string_copy results in named variables.
Add beer-submitted.notest, so we do not test the submitted version.
Resolve a few more regressions by adding explicit temporaries.
Remove some proven dead code.
Merge pull request #819 from hildeth/robustCStringCopy

Add robustness by nulling out c_string_copy arguments.

By convention, a function receiving a c_string_copy as an argument should take ownership of that c_string_copy, either freeing it storing it or returning it. In any case, once ownership of a c_string_copy has been transferred, the former owner should not attempt to access it further. This can be enforced by passing the c_string_copy argument by reference and setting the original pointer to NULL inside the called routine.

This patch takes care of the change for string_from_c_string_copy and chpl_rt_free_c_string(_copy).