Make array references behave like ordered hashes on cursor and collection

I've make this work on some parts it was documented but wasn't working and I've added and documented on ensure_index().

I've also added some tests for these features. Please let me know if there is something I've missed.