Nullptr

Semi-automatically convert code to take use of some C++11 features.

The use of nullptr and override are useful bug catching features, and range based for loops improve code readability.