This type is a light-weight container around a contiguous sequence
of elements of type T.
The type is inspired by LLVM ADT's ArrayRef but has more limited
functionality.
This patch includes tests for the new type but no uses in the runtime
itself. In future patches I will use this type as a foundation for
building a safe abstraction for operating on an environment array.
Going to use data() here?