two crc16 functions, one optimized for size, one optimized for speed, useful for 8-bit microprocessor