Use slicing when possible in fromndarray.

We should probably allow slice syntax for `__setitem__` in all cases and just fall back to an item-by-item implementation when necessary, but that can be a separate PR.

Partially addresses #452.