Fix CRC32 signed integer wrap-around

This fixes CRC32 calculation for Python versions less than 3.0, where crc32() returns integers in the range [-2**31, 2**31-1]