Transfer ArrayViews from package to Base

This is an updated version of #5556. I have copied the content of `ArrayViews.jl` to `Base` and committed with @lindahua as author. Are you okay with this @lindahua?
these methods (since abstract), should generally not be assuming that `a.arr` is valid, but instead should call `parent(a)`