a bunch of vs+icc fixes

This makes spring compile on visual studio 2013, using the intel compiler.

Mostly minor changes, the exception being the change to creg.
Previously, spring would cast a pointer-to-member to another type for both the postload and serializer, casting  of this type is not supported in any way by either the VC compiler, nor the ICC (short of making a union with both types in it and casting it that way)
To fix this, I had to create a templated class on top of the Class type, to be able to handle the typed versions properly, rather than using the dummy struct, which is now removed.

NO_SOUND is fixed so that it no longer requires the OpenAL headers at all.
SYNCCHECK is fixed so that it can be disabled again (previously it would try to use a class in the sync checking macros, which would not be defined without SYNCCHECK)