Re-implement WrappingArray’s [] override:

* doesn’t interfere with polymorphic usage such
  as passing in ranges.
* add override for slice