Fix is_string matching undef

Everything is stringified, so is_string matches undef. It probably also
matches booleans, but I don't have the heart for this now.