Ported varargs code to C++11
Remove varargs because it's shadowed by std::initializer_list
Remove traces of varargs (finally!)