Add specs on Kernel#eval with #to_str coercion.
Kernel#eval: coerce parameter to string before doing anything else.

Previous behaviour was to delay it after storing/loading the object and
its context in a cache.
This could result in an implementation leak when passing an object
whose #hash method always returns nil (i.e. a NullObject).
Merge pull request #2448 from razielgn/eval-string-coerce

Kernel#eval: coerce parameter to string before doing anything else.