use offset axes for offset arrays (#27038)
* Better support for non-Int axes
* Fix offset unique test:
This is an interesting case: it just falls out that unique across dimensions now preserves offset-ness of the non-uniqued dimensions
* Simplify similar(::Type{T}, ...) and require T<:AbstractArray for the default definition
* Use the same extension system for `reshape` as `similar`.
* Fixup Offset similar(::Type, ...) definition to match