Fix casts between string types

It was using the source length instead of the target length for the truncation test.

It was also dropping the requested collation but that's harder to test due to another bug (card created to track that).