Dup string value when encoding if it is frozen

String#encode! will raise a RuntimeError if the string instance is
frozen.

The normal string setter for required or optional string fields already
dups the incoming string to avoid reference issues. However when the
field is a repeated string field the assigned array is dup'ed, but ruby
keeps any string's frozen state.

The fix is simply to dup any string value when we go to encode if it is
frozen.
Merge pull request #117 from localshred/bj/fix_frozen_string_encode

Dup string value when encoding if it is frozen