Check and set label

I ran into an 'illegal offset' warning when using this particular combination of rules and messages. checkAndSetLabel() was trying to use a DateTime object as an array key. I changed the check from !is_array() to (is_numeric($params[$k]) || is_string($params[$k])).
You should probably use `is_scalar` here instead.