crc16: CRC-16 (Cyclic Redundancy Check) support

This is a non-cryptographic hash and is not suitable for cryptographic use.
