Using auto and make_unique

Switching to using the auto keyword for instance variables, because of
the many benefits. Herb Sutter explains this in detail. See
http://herbsutter.com/2013/08/12/gotw-94-solution-aaa-style-almost-always-auto/.
Now using make_unique in a utility header as suggested and written by
Herb Sutter, until the C++14 standard is complete.  See
http://herbsutter.com/2013/05/29/gotw-89-solution-smart-pointers/.