Set error messages for callables

This is a fix that lets the use of callables as in  #3183 using an array with an additional row to set a name for this rule.
Yes, that's the way of knowing if you are passing a executable var (an anonymous function or an array with an object as first position and a string as second position), or the new way of sending callables with rule names, that it's an array with a string as first position in it.