ix_ method now also used for take. If bugs arise, this is the commit to
revert !
more work in `put`: need to reshape val (after check for non-singleton
dimensions)