Created a branch from trunk
Implemented an mpl::int_ based unrolling copy algorithm.
Changed subarrays to carry their own copy of extents, strides, and index bases
(in the hopes that this helps gcc track data dependencies)
implemented the copying of this data using the unrolling copy algorithm 
because gcc does not seem to optimize for loops or std::copy very well.