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.
IMO these should just disappear with C++11, in favor of people writing:

compile_to_file("foo", {a, b, c, d}, target);