Make array_view::operator= non-const

Here's another C++ pedantry issue.

The `operator=` in `array_view` returned a `const` reference.  I *think* this means that when the compiler needs a non-const reference it is free to use an auto-generated `operator=`, which of course would be wrong because it doesn't do the reference counting.

This is purely theoretical, of course, since I haven't seen a problem related to this, but I think this change makes things more correct.