This fixes warnings raised by Clang's new -Wsuggest-override, in preparation for enabling that warning in the LLVM build.
This patch also removes the virtual keyword where redundant, but only in places where doing so improves consistency within a given file. It also removes a couple unnecessary virtual destructor declarations in derived classes where the destructor inherited from the base class is already virtual.