Use concrete typing on the indexes tuple for SubArray construction

This works around bugs due to #8504.
Docs: fix misc errors introduced recently
Handle undef refs in jl_copy_ast, fixes #9475

[ci skip] checked on branch fix9475
passed osx
passed linux except for some network issue cloning package.
Add isless(::Ptr, ::Ptr) and tests

Can be useful to check whether a pointer is in a memory range,
e.g. for arrays. Also add tests for pointer arithmetic.