First check-in of ORM efforts

I'm only including the decorator I made earlier for now. I'll PR more in once I have something  more meaty to share.

I put the new stuff into new files because I thought it'd be easier to keep track of, and I was worried about `vincent.py` becoming too crowded.