Added subdimensions(); made [] non-bounds-checking

subdimensions({1, 3}) extracts the 2nd and 4th dimensions from a
Position object.

Converted ints to size_ts where appropriate.

Made [] faster by simplying mapping to the [] of the underlying vector
without doing bounds checking.  at() calls vector.at(), which does
bounds checking.
Converted .at(...) to .operator[](...)

Since all this code is already bounds-safe, it should be a bit faster.