Fixes PP-shaders on !Mesa targets.

Seems mesa has a quirk where
define THING(x) (#x)
is the same as
define THING(x) (##x)

Didn't realize I messed it up since it just worked since I only tested on Mesa.
Merge pull request #827 from Sonicadvance1/fix-pp-config

Fixes PP-shaders on !Mesa targets.
Add Common/Event.h to the VS project files.
Add Common::Event::WaitFor(), which has the same semantics as std::condition_variable::wait_for() (with millisecond units).
Rewrite raw memcard threading code. Intended to fix issue 7484.

EXI memcard code now doesn't know specifics of how data is flushed to whatever backing storage is used.
GC raw memcard now flushes every 15 seconds if dirty, and on memcard destruction.
GCI folder now flushes only on memcard destruction.