Remove QVM_COMPAT, allow both QVM and NaCl ABI at the same time.

* Made GameVM an abstract class implemented by QVMGameVM and NaClGameVM
* The QVM native VMs are now name-qvm-native.so
* NaCl compilation options are visible but off by default

Still TODO:
* Better reporting of errors when creating VMs
* Add a prefix to NaCl native VMs
Remove the last pieces of the LLVM VMs, we have NaCl now
Fix the compilation of native NaCl VMs in C++
RPC: add a major syscall number along the syscall index
Make the QVM compile def more precise by using either QVM_ABI (for the ABI) or Q3_VM (for lcc)
CM: winding_t is now by value instead of by reference

It removes memory allocations in CM however we guess that
winding_t has no more than 15 points and is "cheap" to copy.

This is to be able to allocate a big chunk of memory for a map
and then mmap it in readonly for the VMs
Updated NaCl files
New IPC framework
Use OVERRIDE instead of override to support older compilers
Merge branch 'master' into engine-upgrade/nacl

Conflicts:
	src/engine/server/sv_game.c
Small fix to IPC framework
Consolidate headers:
- Group src/common/*.h in src/common/Common.h
- Include all C and C++ standard library headers in q_shared.h
Merge branch 'master' into engine-upgrade/headers
Merge branch 'master' into engine-upgrade/nacl
Merge branch 'master' into engine-upgrade/nacl

Conflicts:
	src/engine/qcommon/cm_polylib.cpp
	src/engine/qcommon/cm_polylib.h
Merge branch 'master' into engine-upgrade/headers

Conflicts:
	src/common/Command.h
	src/common/LineEditData.cpp
	src/common/LineEditData.h
	src/common/String.h
	src/engine/framework/CommandSystem.cpp
	src/engine/framework/CvarSystem.cpp
	src/engine/qcommon/files.cpp
	src/engine/sys/sdl_snd.cpp
Merge branch 'master' into engine-upgrade/nacl
Use libc++ for the NaCl code
Add major and minor version numbers to IPC messages
Remove QVM game VM support