WIP: List slicing of objects is more intuitive

This is a fix for #343, which I think makes slicing more intuitive. You can do things like @studywolf wanted in #343, and you can also pass vectors as transforms (see `test_connection:test_vector`).

My only hesitation is that passing a vector versus a matrix significantly changes the way the indexing works. We previously had something like this in the case of scalars, with scalars being transformed into the identity matrix. So I don't think it's really a problem, but I'm interested to hear what everyone thinks.

I've labelled this WIP since some of the code is a bit hacky right now, and I plan on refactoring it a bit before merging.