Fix warnings on 32 bit systems

- Change format specifiers to not make assumptions about integer and
  size_t sizes
- Change audio hash function to shift a different amount based on
  sizeof(size_t)
The reason I shift by 2 less than sizeof(size_t) is because category_t is in the range 0-3, or 2 bits.  You're right about multiplying by 8.