Add C++11 variadic template versions for a number of variable length argument list cases.

Figured I'd open this up for review/commentary. Not particularly critical to merge it soon, but it may be useful for a few people to remove limits on the number of dimensions allows.
When I was working on similar code, my approach was to do something like this at the very top of the file:

    #if __cplusplus > 199711L
    #define CPP11
    #endif

Then, I just used '#ifdef CPP11' or '#ifndef CPP11' wherever I needed it.