- Refactored arrays around. Moved UnifiedStructuredArray to be StructuredArray.
- Kept old StructuredArray as SingleDimensionalStructuredArray for now (alongside MultiDimensionalStructuredArray).
- Will likely end up getting rid of both as StructuredArray now cleanly covers both cases.

- Went back to conditionally throwing IllegalArgumentExceptions on mismatched-dimension-count get() variants instead of relying on the cheaper (i.e. no conditional test) NullPointerExceptions. Conditional tests end up being optimized out or hoisted in the majority of loop use situations for get(), so performance is not truely impacted and IllegalArgumentException is cleaner.

- Went back to get() (instead of getL()) names for long index based get call variants (alongside int variants with same name). Obviously cleaner API, and the additional conditional test (for index < Integer.MAX_VALUE) will usually get optimized out.