DataMapper support

I've implemented DataMapper support. I didn't do all of the caching implementation, because I wasn't clear on what the #outside_transaction method is needed for (it might be that I've been staring at the code for 3 hours straight, and it's past midnight ;).

There is one Machinable spec that doesn't pass when run with everything, but works fine when run the spec file is run separately. At this point I'm not sure where there is state leakage, but I'm not super familiar with your code yet.

I just transliterated the specs, and they seem to pass. I'll be writing a project using DM + Machinist tomorrow, so if I run into any problems I'll fix them.

Cheers,

Jonathan