[NOT READY] C++11

Start using c++11 features: auto/for/unique_ptr/variadic args - refs #1972.

Replaces #1999