Fixed bug in Array that was causing subtle issues all over the place.

The end() method was returning a pointer to the last element, rather
than a pointer just off the end of the array.  This meant that when used
with STL algorithms, the last element was being ignored.