C++11

Start using c++11 features: auto/for/unique_ptr/variadic args - refs #1972.

Replaces #1999 

Before merging:

 - [x] - Automatically set `-std=c++11` and (on OS X) `-stdlib=libc++`
 - [x] - (re)Branch 2.3.x from master