Passing plain error messages into listeners rather than constraints

Having a list of constraints in listeners is good enough, but it is kinda a pain for users to extract errors messages from them.
So perhaps pass plain error messages into listeners?
If users will need constraints they will can access them via 3rd argument.
Makes sense?

Also did a small refactor for extracting error messages from a constraint.
And on `remote`, wrapping message into Array before sending to listener.