Make endianess detection more flexible

And fix it on FreeBSD, where _BIG_ENDIAN is not a flag indicating
big endian machine, but a constant to compare _BYTE_ORDER to.
Fix (Linux) 64-bit crash in CEZ3 (playback of sfx_litng3).
Add simple CMakeLists.txt
Add Linux support to CMake
Improved fix by changing the formula for how memory is allocated to arbitrary sample rate conversion.
Uses fixed-point math to properly calculate the exact amount of space needed.
Merge branch 'endianess' of github.com:AMDmi3/SRB2
Merge branch 'cmake' of github.com:AMDmi3/SRB2
Merge branch 'master' of https://github.com/ilag11111/SRB2
Redo all changes I ended up losing trying to undo the mess I made.
Also, fix the issue pointed out by Alam.
Merge remote-tracking branch 'ilag11111/robotnikcage'
Merge remote-tracking branch 'Sryder13/master'
Merge remote-tracking branch 'upstream/master'