Refactor setitem

Refactor `__setitem__` into component methods similarly to `__getitem__`.

Specifically, I split `__setitem__` into `_set_value(...)`, `_set_view(...)`, and `_checked_setitem(...)`.

I then simplify `_set_view(...)` by using the new `global_slice` property on `LocalArray`s.