When testing CMAKE_<LANG>_COMPILER_ID values, do not explicitly dereference or quote the variable. We want if() to auto-dereference the variable and not its value. Also replace MATCHES with STREQUAL where equivalent.
The /FI flag may be repeated so the flag table entry needs to be marked with SemicolonAppendable. This was already the case for VS 10.