Use the cleanroom gem for evaluating DSLs

I recently wrote a cleanroom gem which encapsulates DSL evaluating logic
from a variety of projects. In particular, this change prevents the
Ridley vs Chef namespace conflict by making the cleanroom inherit from
Object instead of the default inheritance chain.

Furthermore, I added tests for the new DSL methods, ensuring the public
API remains intact.
Actually require the cleanroom gem (awkward)