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.
You seriously want me to write:
```
    #if  __cplusplus > 199711L // C++11 or later
    // nothing here
    #else
    // The pre-C++11 code that will disappear soon.
    #endif
```

The convention is uniform, but there are two types of code: C++11 only and pre-C++11 only. (Where all of the #ifdefs disappear soon. The pre-C++11 code goes away entirely.)