Move the static_assert definition to its own header
Make sure FILETIME and ULARGE_INTEGER sizes match
Move RWLock and UIntMap implementations to common

This should make the code in common completely self-reliant.
Build a common static lib for reusable code
Always use unsigned int for RefCount
Append the number of bits, not bytes, to types

Also use ALuint64SOFT from alext.h for uint64
Avoid checking the previous buffer multiple times
Store the current buffer queue item, rather than played buffer count
Don't explicitly store the BuffersInQueue
Use a RWLock to help protect the source's buffer queue

In some instances this allows to to remove the device/mixer lock, or reduce how
long it's held.
Explicit init the source queue and current_buffer pointers
Add a couple consts
Update the output buffer pointer in the Write_* methods
Add a missing pointer init
Mark the buffer queue pointers volatile
Avoid locking the mixer while queueing buffers onto a source.