Support more ruby versions
Make changes to the library to reduce dependence on MRI.
The main changes are to testing, since the library is already sufficiently general.
The benefit of testing on multiple interpreters is the discipline of restricting ourselves only to the common subset of necessary functionality.
Edited by Alex Kalderimis