Add Ruby version guards for explicit conversion specifications
Refactor ConversionsModule to be an actual Module

ConversionsModule was previously a class that needed to be initialized
with two arguments: null_class and null_equivs.

Instead, we these arguments are passed via Module#included by setting a
constant on the null class, including the module in the null class, and
then removing the constant and undefining the included methods.
Test against various Ruby implementations