Files are simple serialized bytes prefaced by lengths. File is hashed to
verify integrity. This was also a good way preventing unexpected errors
when trying to crash the parser by having it load a different file.
This change includes some refactoring that was necessary:
- It 'fixes' looking at the wrong thread's authentiction. This is still
wrong though. It will be fixed by a thread local pointer in the next
commit.
- Deadlocks with yourself are handled in rwlockguard.
- QoSPacketQueue is now a class.
- Probably other tweaks.