Preliminary work on adding cursor support

I spent the morning trying to add basic Om-style cursor support to the Map, OrderedMap and Vector types. I don't know if this is something that is wanted/needed, but I thought it would be a neat feature.

Read the commit message for d8f408e for info on how it is implemented – I have no idea if I'm going about this the right way so be warned.

(No tests or docs yet – I wanted to see if this is even viable first.)