Fixed `string-set!` to accept an expression

An expression that evaluates to a char can be passed, instead of requiring a char be passed directly. This was an oversight that was never previously addressed.