Use 'virtual' and OVERRIDE to fix Mac build

Build on Mac (with Chromium's clang plugin) requires that overrides use
the OVERRIDE macro, and that we always explicitly declare functions as
virtual even if they would implicitly be.
[Application] No need to explicitly Delete() a ScopedTempDir

In destructor for the tests, we don't need to explicitly call
ScopedTempDir::Delete() for our instance, since it will be immediatly
destroyed, and the destructor already calls Delete().

This was breaking build on Mac because the Delete() function uses
WARN_UNUSED_RESULT and Clang was catching it.