REF/CLN: ops boilerplate
A _ton_ of comparison and arithmetic operations do something combination of:

- [x] `other = lib.item_from_zerodim(other)`
- [ ] listlike but not arraylike --> wrap in ndarray
- [x] return `NotImplemented` if operating against a senior class
- [ ] raise `ValueError` if there is a length mismatch

But we don't _always_ do all of these, and we definitely don't use+test error messages as consistent as @gfyoung would like.

This behavior could all be collected+standardized in a decorator