Add str_transform, str_lower, and str_upper.

str_transform can optionally act as a message filter - any \0's
detected in the transformation function signal to invalidate the string.
However, processing will continue (so the string is in a uniform
statement).