More C++11 goodness:
- Use nullptr instead of NULL or 0
- Use override liberally
- As a result of above, removed a number of dead functions and marked others private