Update changelog; release.
refactor several  non-literal format strings into literal formatstrings
Allow buy and sell to take multiple parameters.
Allow selling via /buy -ITEM, and do completions accordingly.

For example, the sell-all bind: /buy -all rifle
remove a big load of unnecessary consecutive unlinking and linking of entities by the game and server
remove FLAG() idea again…
renderer: ignore a few shader keywords only relevant at map generation time.

These keywords were causing some shaders to be skipped, causing the ‘missing
texture’ texture to be displayed.
add Soundindex fieldtype
refactor G_ParseField for clarity and less bloat
fix potential buffer overflow for openal sfxHandle_t registrations
check for pathlength in F_SOUNDINDEX
move most spawning of 'noise', and all moversound spawnings into the fieldtable
Improve R_AddNormals

New code results in a more accurate image because 128 / 255 and 127 / 255 do not exactly equal 0.5. There are also fewer and less expensive calculations so it should be faster.
The map thunder spent a significant amount of time in R_AddNormals when loading.
Remove useless rgb max calculations in R_UploadImage
renderer: ignore a few shader keywords only relevant at map generation time.

These keywords were causing some shaders to be skipped, causing the ‘missing
texture’ texture to be displayed.
fix potential buffer overflow for openal sfxHandle_t registrations
Changelog update.
don't set the loading label too early, or we get a flash of gray
Cleanup Crypto code
Add functions for setting file access permissions.

Implemented on POSIX-compliant systems.
Only no-ops for Windows since I can not test.