Code Polish: More Smart Pointers, Less C-isms.
This doesn't necessarily fix any present issues, but more so just cleans up the codebase with more modern practices when using C++.
Highlights include:
- Changing NULLs to nullptr.
- Converting c-headers into their C++ variants (ex: stdio.h -> cstdio)
- Converting most raw pointers into QScopedPointer for reduced manual memory management code.