Warn when raise_error receives non-proc object

When a non-proc object is given, `given_proc.call` fails, then `raise_error`
or
`raise_error(NoMethodError)` passes.

This behaviour is dangerous and there is actually no error, so it should warn 
and fail.