Allow utf-8 encoded strings

currently, parson tests characters using iscntrl.
this is slightly different from json spec(rfc4627: http://www.ietf.org/rfc/rfc4627.txt)

```
string = quotation-mark *char quotation-mark

         char = unescaped /
                escape (
                    %x22 /          ; "    quotation mark  U+0022
                    %x5C /          ; \    reverse solidus U+005C
                    %x2F /          ; /    solidus         U+002F
                    %x62 /          ; b    backspace       U+0008
                    %x66 /          ; f    form feed       U+000C
                    %x6E /          ; n    line feed       U+000A
                    %x72 /          ; r    carriage return U+000D
                    %x74 /          ; t    tab             U+0009
                    %x75 4HEXDIG )  ; uXXXX                U+XXXX

         escape = %x5C              ; \

         quotation-mark = %x22      ; "

         unescaped = %x20-21 / %x23-5B / %x5D-10FFFF
```

characters %x20-21 / %x23-5B / %x5D-10FFFF should be vaild without escaping.
my workaround is replacing iscntrl with simple comparison:

```
(unsigned char)current_char < 0x20
```