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.
What does the error message look like if I do:

reorder_storage(a_var, another_var, not_a_var)?

If it's bad, we could put the enable_if convertible thing on all of these.