Calculates the CRC32 - 32 bit Cyclical Redundancy Check.
This check is used in numerous systems to verify the integrity
of information. It's also used as a hashing function.
Unlike a regular checksum, it's sensitive to the order of the characters.
When calculating the CRC32 over a number of strings or byte arrays
the previously calculated CRC is passed to the next call. In this
way the CRC is built up over a number of items, including a mix of
strings and byte arrays.