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
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/nacl
Use libc++ for the NaCl code
Add major and minor version numbers to IPC messages
Remove QVM game VM support
Remove never implemented syscalls
Change the compiledef GAME and CGAME to IN_GAME_VM and IN_CGAME_VM (UI will be removed soon)
Some WIP on the command proxy